我在写一个Web应用程序,允许用户通过http web请求下载大文件。我需要给他们取消请求的选项,所以我为请求创建了一个线程。但是,在下载过程中,我仍然无法启动取消活动。我究竟做错了什么? 感谢您的任何意见!线程以允许取消Web请求
public class downloadThread {
public int isResume;
public void downloadImage()
{ }
}
protected void btnDownload_Click(object sender, EventArgs e)
{ var x = new downloadThread();
x.isResume = 0;
tRequest = new Thread(new ThreadStart(x.downloadImage));
tRequest.Start();
while (tRequest.IsAlive)
{
DownloadImage(); //this is where the rest request happens
} }
protected void btnCancelRequest_Click(object sender, EventArgs e)
{
if (tRequest != null && tRequest.IsAlive)
{
tRequest.Abort();
}
}
心不是这里面btnDownload_Click while循环阻塞,即使您正在使用的线程调用?而tRequest线程处于活动状态(文件下载)正在执行DownloadImage()这样bcoz那btnCancelRequest_Click不点火也许 – DSharper 2011-05-17 03:41:31