我有一个父线程(非UI),它创建一些子线程来做一些工作 - 在某些时候父母必须等待某些任务完成孩子的线程 - 这并不意味着孩子已完成,但只是它已达到一定的点,父母现在可以继续处理...当孩子执行某个动作时通知父线程[C#]
说明请参考下面的代码,显然这不是什么我的孩子会做,但它显示了我正在努力完成的事情。回想一下,这些都不是UI线程...
// Parent Thread
Thread childThread = new Thread(new ThreadStart(Manage));
childThread.IsBackground = true;
childThread.Name = "NamedPipe Manager";
childThread.Start();
while (true)
{
... do some work ...
// wait for signal from MainThread to proceed //
... do more work
}
// Child Thread
private void Manage()
{
... do some work ...
... call some functions ...
// SIGNAL TO PARENT THAT IT CAN CONTINUE //
... do more work ...
... call more functions ...
}
任何一个有我如何能做到在一个线程安全的方式这个任务有什么建议? 任何帮助将不胜感激。 谢谢,
如果它们在另一个类中会发生什么?例如Pareant创建A = new A();而在A里面,我们启动一个需要在父级中设置()ManualResetEvent()的线程? – Shaitan00 2009-08-28 16:34:50
将信号引用作为参数传递给A构造函数 – dtb 2009-08-28 17:57:14