c#多线程,怎么等待别的线程都结束?谢谢!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#多线程,怎么等待别的线程都结束?谢谢!!相关的知识,希望对你有一定的参考价值。
for (int i = 0; i < 20; i++)//创建20个线程
Thread thread = new Thread(new ParameterizedThreadStart(real.startTest));
thread.Start(i);
// WaitHandle.WaitAll
//Thread.Sleep(50000);
outTxt(str, "d:\\s.txt");//输出全局string
...
startTest(object c).....
我的意思是创建了20个线程,每个线程在执行过程中会得到一些值,同时把这些值都付给了一个全局的字符串,我现在想把20个线程都执行完以后,再执行这句outTxt(str, "d:\\s.txt");//输出全局string;不知道应该怎么弄?
我不希望用sleep(50000)这些不确定的等待,如果在for循环里加入join(),可以实现,但这样的话我这20个线程就没意义了。
谢谢!!
C#多线程等待回调
参考技术A 此处介绍一下 AutoResetEvent的方法下面贴一下微软自带的一个方法。
这样点击后就是
sleep十秒后
我们会注意到里面有个方法
此处这个方法可以替换带参数启动一个new Thread。 上面这个方法已经非常简练,建议这么使用,下面这个方法挺繁琐的。
下面的方法其实也是带参数新建线程的一个方法。
我们先新建一个类
那么将原先工程中的替换一下
以上是关于c#多线程,怎么等待别的线程都结束?谢谢!!的主要内容,如果未能解决你的问题,请参考以下文章
C#多线程: 怎么知道 多个线程 执行完毕了?所有的线程执行完毕后 我要做处理
C#多线程:深入了解线程同步lock,Monitor,Mutex,同步事件和等待句柄(中)