private static void ReceiveCallback(SynchronizationContext context, MyWebRequest req, Action <Exception, byte[]> resultHandler) { try { req.Request.BeginGetResponse(new AsyncCallback(result => { WebResponse resp = null; try { resp = req.Request.EndGetResponse(result); } catch (Exception ex) { if (null != resultHandler) { context.Post(_ => { resultHandler(ex, null); }, null); } return; } byte[] resultData = null; try { resultData = CryptEncoder.Read(resp.GetResponseStream()); } catch (Exception ex) { if (null != resultHandler) { context.Post(_ => { resultHandler(ex, null); }, null); } return; } if (null != resultHandler) { context.Post(_ => { resultHandler(null, resultData); }, null); } }), null); } catch (Exception ex) { if (null != resultHandler) { context.Post(_ => { resultHandler(ex, null); }, null); } } }
private static void Receive(SynchronizationContext context, MyWebRequest req, object userState, Func <Exception, byte[], bool, object, bool> resultHandler) { try { req.Request.BeginGetResponse(new AsyncCallback(result => { WebResponse resp = null; try { resp = req.Request.EndGetResponse(result); } catch (Exception ex) { //BusyToken.Hide(); if (null != resultHandler) { context.Post(_ => { resultHandler(ex, null, req.IsCancel, userState); }, null); } return; } byte[] resultData = null; try { resultData = CryptEncoder.Read(resp.GetResponseStream()); } catch (Exception ex) { //BusyToken.Hide(); if (null != resultHandler) { context.Post(_ => { resultHandler(ex, null, req.IsCancel, userState); }, null); } return; } //BusyToken.Hide(); if (null != resultHandler) { context.Post(_ => { resultHandler(null, resultData, req.IsCancel, userState); }, null); } }), null); } catch (Exception ex) { //BusyToken.Hide(); if (null != resultHandler) { context.Post(_ => { resultHandler(ex, null, req.IsCancel, userState); }, null); } } }