public static void TransferCompletionToTask <T>(System.Threading.Tasks.TaskCompletionSource <T> tcs, System.ComponentModel.AsyncCompletedEventArgs e, Func <T> getResult, Action unregisterHandler) { if (e.UserState != tcs) { return; } try { unregisterHandler(); } finally { if (e.Cancelled) { tcs.TrySetCanceled(); } else if (e.Error != null) { tcs.TrySetException(e.Error); } else { tcs.TrySetResult(getResult()); } } }
public System.Threading.Tasks.Task <HttpWebHelperAsyncResult> ExecuteTaskAsync(IHttpWebRequest httpWebRequest, Stream requestBody, object state) { var tcs = new System.Threading.Tasks.TaskCompletionSource <HttpWebHelperAsyncResult>(state); try { ExecuteAsync(httpWebRequest, requestBody, ar => { var asyncResult = (HttpWebHelperAsyncResult)ar; if (asyncResult.IsCancelled) { tcs.TrySetCanceled(); } if (asyncResult.Exception != null) { tcs.TrySetException(asyncResult.Exception); } else { tcs.TrySetResult(asyncResult); } }, state); } catch (Exception ex) { tcs.TrySetException(ex); } return(tcs.Task); }
public System.Threading.Tasks.Task <FluentHttpAsyncResult> ExecuteTaskAsync(object state) { var tcs = new System.Threading.Tasks.TaskCompletionSource <FluentHttpAsyncResult>(state); try { ExecuteAsync(ar => { if (ar.IsCancelled) { tcs.TrySetCanceled(); } if (ar.Exception != null) { tcs.TrySetException(ar.Exception); } else { tcs.TrySetResult(ar); } }, state); } catch (Exception ex) { tcs.TrySetException(ex); } return(tcs.Task); }
public System.Threading.Tasks.Task<HttpWebHelperAsyncResult> ExecuteTaskAsync(IHttpWebRequest httpWebRequest, Stream requestBody, object state) { var tcs = new System.Threading.Tasks.TaskCompletionSource<HttpWebHelperAsyncResult>(state); try { ExecuteAsync(httpWebRequest, requestBody, ar => { var asyncResult = (HttpWebHelperAsyncResult)ar; if (asyncResult.IsCancelled) tcs.TrySetCanceled(); if (asyncResult.Exception != null) tcs.TrySetException(asyncResult.Exception); else tcs.TrySetResult(asyncResult); }, state); } catch (Exception ex) { tcs.TrySetException(ex); } return tcs.Task; }