C#选择哪种线程模式

时间:2011-09-28 18:28:18

标签: c# multithreading queue block

假设我们有一个可重入的接口方法A,并且对于方法中的每个条目,当前线程应等到特定于线程的事件发生时:

void interfaceMethodA()
{
    doSomething();
    waitHandle.WaitOne();
}

现在,将有set() - 调用waitHandle,以便退出该方法。但是那些set()调用必须释放(可能的)线程队列的特定线程,而不是必须释放第一个线程队列。这种模式的最佳实践是什么,也许wait()和pulse()结合线程id向量?对我来说,这似乎有点混乱......

提前致谢,Juergen

1 个答案:

答案 0 :(得分:2)

您可以使用ThreadLocal<WaitHandle>

ThreadLocal<WaitHandle> waitHandle = new ThreadLocal<WaitHandle>(() => new ManualResetEvent(false));

void interfaceMethodA()
{
    doSomething();
    waitHandle.Value.WaitOne();
}