【问题标题】:Help with porting thread functionality: Win32 --> .Net帮助移植线程功能:Win32 --> .Net
【发布时间】:2010-05-20 16:34:26
【问题描述】:

我负责将一个类从旧版 Win32 代码移植到 .Net,我遇到了一个线程模型,我不确定如何最好地在 .Net 中实现。基本上,Win32 有一个工作线程,它调用 WaitForMultipleObjects() 并在触发特定对象时执行特定的代码段。这有一种先到先得的效果,我需要在自己的代码中进行模拟。但我不确定如何在.Net 中最好地做到这一点。有谁有想法吗?

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

谢谢,丹尼尔

【问题讨论】:

    标签: .net winapi multithreading threadpool


    【解决方案1】:

    嗯,有 WaitHandle.WaitAnyWaitHandle.WaitAll - 这对你有帮助吗?

    诚然,我一开始可能不会使用这种方法:我会使用生产者/消费者队列。您使用的是 .NET 4 吗?这通过 Parallel Extensions 提供了很多更好的线程支持,这使得这种事情变得容易。

    【讨论】:

    • 感谢 John,WaitHandle 即将完成。我最初的想法是按照你的建议实现一个队列来处理,所以我可能会继续这样做。很高兴了解并行扩展。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 1970-01-01
    • 2016-01-19
    • 1970-01-01
    • 2021-03-16
    • 2011-02-12
    • 1970-01-01
    相关资源
    最近更新 更多