【发布时间】:2013-01-07 05:09:47
【问题描述】:
这是我需要做的—— 1.定义句柄threadHandle,定义句柄数组h[20]...其中数组中的每一项都有值threadHandle。
- 我的代码打开了 20 个线程,一旦完成,每个线程都必须向主线程发出信号,一旦它们都发出信号,主线程必须将某些内容记录到日志文件中。
我打算这样做:
定义threadHandle和上面定义的句柄数组h[20}。
代码打开 20 个线程,执行 - waitformultipleobjects(NULL,20,h,true,10000)
现在代码将等待在等待返回之前设置 h 数组中的所有句柄。但是由于 h 的所有值都相同,所以等待函数返回错误。有没有办法解决这个问题?我基本上需要所有线程向调用线程发出信号...为 20 个线程中的每一个定义 20 个处理程序似乎也不是一个好主意。
我可以这样做吗? -
定义threadHandle和句柄数组h[20]。 为向主线程发出信号的线程数维护一个变量计数。
waitforsingleobject(threadHandle)
一旦返回,增加 count 并且如果 count
我正在尝试这个,但想知道是否有更好的方法来做到这一点。
TIA。 和
【问题讨论】:
-
在多个线程中使用相同的事件是行不通的。您很有可能会错过一些信号事件。相反,使用 Jerry 提到的 20 个独特事件。有一个 EVT_BASE 并将每个事件初始化为 EVT_BASE+1...+20。您还可以改进设计以包装子线程并隐藏初始化
-
所有值都一样?什么鬼?
标签: c++ windows multithreading