From 3ed1ac10cb0e827ced475edfd0f8de913a5e4099 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 14 Sep 2015 08:50:37 -0400 Subject: update docs --- .../HttpClientManager/HttpClientManager.cs | 42 +++++++++++++--------- 1 file changed, 25 insertions(+), 17 deletions(-) (limited to 'MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs') 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 asyncTask = Task.Factory.FromAsync(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()); - } - - }, 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 taskCompletion; + + public void OnSuccess(Task task) + { + taskCompletion.TrySetResult(task.Result); + } + + public void OnError(Task task) + { + if (task.Exception != null) + { + taskCompletion.TrySetException(task.Exception); + } + else + { + taskCompletion.TrySetException(new List()); + } + } + } } } -- cgit v1.2.3