我写了一个程序,在程序中开一个线程下十个文件,我想在程序下载完毕的时候弹出一提示说下载完毕,但是我怎么判断线程已经结束了呢?
Thread t1=new Thread(new ThreadStart(Download));
t1.Start();private void Download()
{
//循环下载十个文件的代码
}我尝试用过t1.IsAlive()和t1.ThreadState==ThreadState.Stopped判断,但是都不行,有什么好的方法吗?
Thread t1=new Thread(new ThreadStart(Download));
t1.Start();private void Download()
{
//循环下载十个文件的代码
}我尝试用过t1.IsAlive()和t1.ThreadState==ThreadState.Stopped判断,但是都不行,有什么好的方法吗?
回到主方法再看t1.ThreadState 就是Stopped.
Download的最后直接弹出一个窗口,提示说下载完毕
Thread.IsBackground 设为true 就可以了 基本上不太明白这样做的目的是什么,我不希望这个线程直接因为主线程的完毕而完毕,而是希望它可以执行完.可能我对后台线程的理解还不对吧.
能说详细点吗?
弄个全局int变量计数(或者其他能够控制线程完成的)当每个线程完成时减1但等于0时触发AutoResetEvent,主线程在外面等这个event.