我的代码是
public static voID Invoke(Action[] Actions) { Thread[] threadArray = new Thread[Actions.Length]; for (int i = 0; i < Actions.Length; i++) { threadArray[i] = new Thread(() => { Actions[i].Invoke(); }); threadArray[i].Start(); } } public static voID WaitAll() { } public static voID WaitAny() { }
我想等待所有线程完成,并且在任何线程完成时也会收到通知,
像WaitAny , WaitAll
但是等待手柄只能在线程池上使用,找不到任何在单线程上使用的例子。
如何更改Powershell中列表框的字体大小
检测外部进程是否交互式,并有任何可见的用户界面
如何从小型转储获取环境variables?
用C#插件扩展C ++应用程序
在windows远程服务器中运行一个命令,并以C#.NET取回控制台输出
我的应用程序需要很multithreading,数百个线程,最大线程数限制,剩余任务排队。
我如何pipe理?
更新:这里是代码,请让我知道如果更好的代码可能。
public class ParallelV2 { static int waitcount = 0; static WaitHandle[] waitHandles; public static voID Invoke(Action[] Actions) { waitcount = Actions.Length; Thread[] threadArray = new Thread[Actions.Length]; waitHandles = new WaitHandle[Actions.Length]; for (int i = 0; i < Actions.Length; i++) { var count = i; waitHandles[count] = new autoresetEvent(false); threadArray[count] = new Thread(() => { Actions[count].Invoke(); ((autoresetEvent)waitHandles[count]).Set(); }); threadArray[count].Start(); } } public static voID WaitAll() { while (waitcount > 0) { WaitHandle.WaitAny(waitHandles); waitcount--; } } public static voID WaitAny() { WaitHandle.WaitAny(waitHandles); } }
如何通过互联网更新.net windows应用程序
什么是windows编程和它的前进方向? 老实说win32死了,不是吗?
如何在* config文件中保存键值
testing“我的文档”文件夹redirect
如何从.NET客户端应用程序加载URL
在下面的例子中,我有三个线程,我需要跟踪。 每个线程完成后都会设置相应的句柄。
声明如下:
private WaitHandle[] waithandles; // see comment on static below
像这样创建它:
waitcount = 3; waithandles = new WaitHandle[3] { new autoresetEvent(false),new autoresetEvent(false),new autoresetEvent(false) };
在线程中,当它完成时,像这样设置:
((autoresetEvent)waithandles[i]).Set();
(实际上,这是过度简化的,但它会工作,如果你等待处理静态。我真正做的是线程执行一个回调在其生命的尽头等待句柄)
在主线程中,像这样检查。 当waitcount达到零,我知道所有的线程已经完成
while (waitcount > 0) { WaitHandle.WaitAny(waithandles,30000); waitcount--; }
你可以用myThread.Join()等待一个线程myThread来完成。
总结以上是内存溢出为你收集整理的在单线程上调用WaitHandle全部内容,希望文章能够帮你解决在单线程上调用WaitHandle所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)