Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ SendAsync()

override Task< HttpResponseMessage > System.Net.Http.MessageProcessingHandler.SendAsync ( HttpRequestMessage request,
CancellationToken cancellationToken )
inlinesealedpackage

Definition at line 46 of file MessageProcessingHandler.cs.

47 {
48 if (request == null)
49 {
50 throw new ArgumentNullException("request", System.SR.net_http_handler_norequest);
51 }
52 SendState sendState = new SendState(this, cancellationToken);
53 try
54 {
55 HttpRequestMessage request2 = ProcessRequest(request, cancellationToken);
56 Task<HttpResponseMessage> task2 = base.SendAsync(request2, cancellationToken);
57 task2.ContinueWith(delegate(Task<HttpResponseMessage> task, object state)
58 {
59 SendState sendState2 = (SendState)state;
60 MessageProcessingHandler handler = sendState2._handler;
61 CancellationToken token = sendState2._token;
62 if (task.IsFaulted)
63 {
64 sendState2.TrySetException(task.Exception.GetBaseException());
65 }
66 else if (task.IsCanceled)
67 {
68 sendState2.TrySetCanceled(token);
69 }
70 else
71 {
72 if (task.Result != null)
73 {
74 try
75 {
76 HttpResponseMessage result = handler.ProcessResponse(task.Result, token);
77 sendState2.TrySetResult(result);
78 return;
79 }
80 catch (OperationCanceledException e2)
81 {
82 HandleCanceledOperations(token, sendState2, e2);
83 return;
84 }
85 catch (Exception exception2)
86 {
87 sendState2.TrySetException(exception2);
88 return;
89 }
90 }
92 }
93 }, sendState, CancellationToken.None, TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default);
94 }
95 catch (OperationCanceledException e)
96 {
98 }
99 catch (Exception exception)
100 {
101 sendState.TrySetException(exception);
102 }
103 return sendState.Task;
104 }
HttpRequestMessage ProcessRequest(HttpRequestMessage request, CancellationToken cancellationToken)
static void HandleCanceledOperations(CancellationToken cancellationToken, TaskCompletionSource< HttpResponseMessage > tcs, OperationCanceledException e)
static string net_http_handler_noresponse
Definition SR.cs:68
static string net_http_handler_norequest
Definition SR.cs:70
Definition SR.cs:7
Task ContinueWith(Action< Task< TResult > > continuationAction)
Definition Task.cs:263

References System.Net.Http.MessageProcessingHandler.SendState._handler, System.Net.Http.MessageProcessingHandler.SendState._token, System.cancellationToken, System.Threading.Tasks.Task< TResult >.ContinueWith(), System.Threading.Tasks.TaskScheduler.Default, System.exception, System.Net.Http.MessageProcessingHandler.HandleCanceledOperations(), System.SR.net_http_handler_norequest, System.SR.net_http_handler_noresponse, System.Threading.CancellationToken.None, System.Net.Http.MessageProcessingHandler.ProcessRequest(), System.Net.Http.MessageProcessingHandler.ProcessResponse(), System.Runtime.ExceptionServices.ExceptionDispatchInfo.SetCurrentStackTrace(), System.state, System.Threading.Tasks.TaskCompletionSource< TResult >.Task, System.task, System.Threading.Tasks.TaskCompletionSource< TResult >.TrySetCanceled(), System.Threading.Tasks.TaskCompletionSource< TResult >.TrySetException(), and System.Threading.Tasks.TaskCompletionSource< TResult >.TrySetResult().