我有一个父线程(非UI),它创建一些子线程做一些工作,这些孩子来自不同的类(听起来很奇怪,但代码示例将说明它) - 在某些时候,父母必须等待某些任务由子线程完成 - 这并不意味着孩子已完成,但仅限于它已达到某个点,父母现在可以继续处理...class A在不同的类中等待Thread中的ManualResetEvent? [C#]
显然,这是一个示例我的情况......生活是不是这个简单的:) (抱歉转贴 - 试图添加为我以前的一个,但代码中的注释再也没有出来右)...
class A
{
private ManualResetEvent manualResetEvent;
public A()
{
manualResetEvent = new ManualResetEvent(false);
B child = new B();
if (manualResetEvent;.WaitOne(1000, false))
{
... do the work I was waiting on ...
}
}
};
Class B
{
public B()
{
Thread childThread = new Thread(new ThreadStart(Manage));
childThread.IsBackground = true;
childThread.Name = "NamedPipe Manager";
childThread.Start();
private void Manage()
{
... do some work ...
... call some functions ...
// SIGNAL TO Class A THAT IT CAN CONTINUE //
manualResetEvent.Set(); // this won't compile because obviously it has no clue what manualResetEvent is ... different class
... do more work ...
... call more functions ...
}
}
};
正如你所看到的,这与之前有点不同......现在我们有两个不同的类(A & B) - 这个问题引发的问题是B无法看到A的manualResetEvent,因此无法通过Set来通知它。 ..
任何人有什么建议我如何能以线程安全的方式完成这项任务? 任何帮助将不胜感激。 谢谢,