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

◆ DownloadFileAsync() [2/2]

void System.Net.WebClient.DownloadFileAsync ( Uri address,
string fileName,
object? userToken )
inline

Definition at line 1602 of file WebClient.cs.

1603 {
1604 ArgumentNullException.ThrowIfNull(address, "address");
1605 ArgumentNullException.ThrowIfNull(fileName, "fileName");
1606 FileStream fileStream = null;
1607 AsyncOperation asyncOperation = StartAsyncOperation(userToken);
1608 try
1609 {
1610 fileStream = new FileStream(fileName, FileMode.Create, FileAccess.Write);
1611 DownloadBitsAsync(_webRequest = GetWebRequest(GetUri(address)), fileStream, asyncOperation, DownloadFileAsyncCallback);
1612 }
1613 catch (Exception ex) when (!(ex is OutOfMemoryException))
1614 {
1615 fileStream?.Close();
1616 DownloadFileAsyncCallback(null, GetExceptionToPropagate(ex), asyncOperation);
1617 }
1618 }
virtual void Close()
Definition Stream.cs:644
Uri GetUri(string address)
Definition WebClient.cs:990
async void DownloadBitsAsync(WebRequest request, Stream writeStream, AsyncOperation asyncOp, Action< byte[], Exception, AsyncOperation > completionDelegate)
void DownloadFileAsyncCallback(byte[] returnBytes, Exception exception, object state)
virtual WebRequest GetWebRequest(Uri address)
Definition WebClient.cs:428
WebRequest _webRequest
Definition WebClient.cs:76
static Exception GetExceptionToPropagate(Exception e)
AsyncOperation StartAsyncOperation(object userToken)
Definition WebClient.cs:366

References System.Net.WebClient._webRequest, System.IO.Stream.Close(), System.Net.WebClient.DownloadBitsAsync(), System.Net.WebClient.DownloadFileAsyncCallback(), System.Net.WebClient.GetExceptionToPropagate(), System.Net.WebClient.GetUri(), System.Net.WebClient.GetWebRequest(), System.Net.WebClient.StartAsyncOperation(), and System.ArgumentNullException.ThrowIfNull().