2010-05-20 56 views
1

我负责将传统Win32代码中的类移植到.Net,并且我遇到了一个线程模型,我不确定如何以.Net 。基本上,Win32有一个工作线程,它调用WaitForMultipleObjects()并在特定的对象被触发时执行特定的代码段。这有一种先到先得的效果,我需要在自己的代码中进行模拟。但我不确定在.Net中如何最好地做到这一点。有人有什么主意吗?帮助移植线程功能:Win32 - > .Net

我发现在.Net中没有等效的WaitForMultipleObjects(),只有ThreadPool类似乎提供了我需要的大部分内容,但我不确定它是否是最好的,因为我只有四个对象总计等待并执行代码。

谢谢,丹尼尔

回答

1

嗯,有WaitHandle.WaitAnyWaitHandle.WaitAll - 它可以帮助您?

不可否认,我可能不会用这种方法开始:我会使用生产者/消费者队列。你在使用.NET 4吗?这有很多通过并行扩展支持更好的线程支持,这使得这种事情变得简单。

+0

感谢John,WaitHandle就是这么做的。正如你所建议的,我最初的想法是实现一个队列来处理,所以我可以继续。很高兴知道并行扩展。 – JimDaniel 2010-05-20 16:57:00