【发布时间】:2011-08-29 02:48:31
【问题描述】:
假设我有一个可以从主线程调用多次的函数。每次调用它时,我都会创建一个WebClient 对象来异步下载一些数据。
我的问题...这样做安全吗? WebClient 对象是否在事件调用后释放?如果不会自动释放内存,我不想继续分配内存。
我的应用程序适用于带有 Silverlight 的 WP7。
谢谢!
void DownloadData(string cURL)
{
WebClient webClient = new WebClient();
webClient.DownloadStringCompleted +=
new System.Net.DownloadStringCompletedEventHandler(
webClient_DownloadStringCompleted);
webClient.DownloadStringAsync(new Uri(cURL));
}
static void webClient_DownloadStringCompleted(object sender,
System.Net.DownloadStringCompletedEventArgs e)
{
...
}
【问题讨论】:
-
尚不清楚是否有任何活动对象持有对您的 WebClient 对象的引用。 DownloadStringAsync 可能正在设置一些东西来做到这一点,但我更担心它会过早而不是太晚收集垃圾! :)
标签: c# silverlight windows-phone-7 asynchronous webclient