【发布时间】:2009-08-24 13:26:09
【问题描述】:
我想下载一张图片,然后在图片框中显示。
一开始我是这样的:
WebClient client = new WebClient();
client.DownloadFile(url, localFile);
pictureBox2.Picture = localFile;
但这并不完美,因为在执行下载期间,应用程序有点卡住了。
然后我改成这样:
public class ParamForDownload
{
public string Url { get; set; }
public string LocalFile { get; set; }
}
ParamForDownload param = new ParamForDownload()
{
Url = url,
LocalFile = localFile
};
ThreadStart starter = delegate { DownloadMap (param); };
new Thread(starter).Start();
pictureBox2.Picture = localFile;
private static void DownloadMap(ParamForDownload p)
{
WebClient client = new WebClient();
client.DownloadFile(p.Url, p.LocalFile);
}
但现在我必须执行“等待线程结束”之类的操作,因为文件是在线程中访问的,并且同时通过 DownloadMap 方法将某些内容下载到文件中。
解决该问题的最佳等待时间是什么?
【问题讨论】:
标签: c# .net winforms multithreading