diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-09-14 08:50:37 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-09-14 08:50:37 -0400 |
| commit | 3ed1ac10cb0e827ced475edfd0f8de913a5e4099 (patch) | |
| tree | 7d79af1a48fe534a84b827177e1bc030b0e4e766 /MediaBrowser.Common.Implementations/HttpClientManager | |
| parent | f346997992031e4f49fe1d0294e54962f8c6eddd (diff) | |
update docs
Diffstat (limited to 'MediaBrowser.Common.Implementations/HttpClientManager')
| -rw-r--r-- | MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs | 42 |
1 files changed, 25 insertions, 17 deletions
diff --git a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs index 5dd1ab808..7157f6325 100644 --- a/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs +++ b/MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs @@ -869,25 +869,11 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager Task<WebResponse> asyncTask = Task.Factory.FromAsync<WebResponse>(request.BeginGetResponse, request.EndGetResponse, null); ThreadPool.RegisterWaitForSingleObject((asyncTask as IAsyncResult).AsyncWaitHandle, TimeoutCallback, request, timeout, true); - asyncTask.ContinueWith(task => - { - taskCompletion.TrySetResult(task.Result); - - }, TaskContinuationOptions.NotOnFaulted); + var callback = new TaskCallback { taskCompletion = taskCompletion }; + asyncTask.ContinueWith(callback.OnSuccess, TaskContinuationOptions.NotOnFaulted); // Handle errors - asyncTask.ContinueWith(task => - { - if (task.Exception != null) - { - taskCompletion.TrySetException(task.Exception); - } - else - { - taskCompletion.TrySetException(new List<Exception>()); - } - - }, TaskContinuationOptions.OnlyOnFaulted); + asyncTask.ContinueWith(callback.OnError, TaskContinuationOptions.OnlyOnFaulted); return taskCompletion.Task; } @@ -903,5 +889,27 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager } } } + + private class TaskCallback + { + public TaskCompletionSource<WebResponse> taskCompletion; + + public void OnSuccess(Task<WebResponse> task) + { + taskCompletion.TrySetResult(task.Result); + } + + public void OnError(Task<WebResponse> task) + { + if (task.Exception != null) + { + taskCompletion.TrySetException(task.Exception); + } + else + { + taskCompletion.TrySetException(new List<Exception>()); + } + } + } } } |
