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

◆ CopyAsync()

static Task System.Net.Http.StreamToStreamCopy.CopyAsync ( Stream source,
Stream destination,
int bufferSize,
bool disposeSource,
CancellationToken cancellationToken = default(CancellationToken) )
inlinestatic

Definition at line 25 of file StreamToStreamCopy.cs.

26 {
27 try
28 {
29 Task task = ((bufferSize == 0) ? source.CopyToAsync(destination, cancellationToken) : source.CopyToAsync(destination, bufferSize, cancellationToken));
30 if (!disposeSource)
31 {
32 return task;
33 }
34 switch (task.Status)
35 {
36 case TaskStatus.RanToCompletion:
38 return Task.CompletedTask;
39 case TaskStatus.Canceled:
40 case TaskStatus.Faulted:
41 return task;
42 default:
43 return DisposeSourceAsync(task, source);
44 }
45 }
46 catch (Exception exception)
47 {
49 }
50 static async Task DisposeSourceAsync(Task copyTask, Stream source)
51 {
52 await copyTask.ConfigureAwait(continueOnCapturedContext: false);
54 }
55 }
static void DisposeSource(Stream source)
new ConfiguredTaskAwaitable< TResult > ConfigureAwait(bool continueOnCapturedContext)
Definition Task.cs:226
static Task FromException(Exception exception)
Definition Task.cs:3341
static Task CompletedTask
Definition Task.cs:1120

References System.cancellationToken, System.Threading.Tasks.Task< TResult >.CompletedTask, System.Threading.Tasks.Task< TResult >.ConfigureAwait(), System.destination, System.Net.Http.StreamToStreamCopy.DisposeSource(), System.exception, System.Threading.Tasks.Task< TResult >.FromException(), System.source, and System.task.

Referenced by System.Net.Http.StreamContent.SerializeToStreamAsyncCore().