在单线程上调用WaitHandle

在单线程上调用WaitHandle,第1张

概述在单线程上调用WaitHandle

我的代码是

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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1293797.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存