[英]Clearing out result from WebClient
我有一個Web客戶端的以下代碼部分:
var client = new WebClient();
client.DownloadProgressChanged += (sender, args) =>
client_DownloadProgressChanged(sender, args, this.Context.ConnectionId);
client.DownloadDataCompleted += (sender, evt) =>
{
byte[] result = evt.Result;
aLongRunningTask(result);**
}
我的問題是,需要在完成downloaddata方法后啟動“ aLongRunningTask”函數,該函數可以正常工作,但是由於我收到的文件很大,因此我最終在內存中有一個字符串,占用了大量內存空間,沒有必要,因為我只需要byte []。
不幸的是,evt.Result是一個只讀屬性,因此我無法將其清空,並且由於運行aLongRunningTask,因此我無法使客戶端為空。
有什么方法可以覆蓋evt.Result以便可以將其清除,也可以通過另一種方法來清空內存使用量。
如何使用這樣的using
using(var client = new WebClient()){
//your logic
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.