gpt4 book ai didi

c# - 托管线程一般建议3

转载 作者:行者123 更新时间:2023-12-03 13:22:33 26 4
gpt4 key购买 nike

第3号一般性建议的含义是什么?

Don't control the execution of worker threads from your main program (using events, for example). Instead, design your program so that worker threads are responsible for waiting until work is available, executing it, and notifying other parts of your program when finished. If your worker threads do not block, consider using thread pool threads. Monitor.PulseAll is useful in situations where worker threads block.



有人可以举例说明吗?

-资料来源: MSDN - Managed Threading Best Practices

最佳答案

好吧,基本上有两种方法可以将工作分配给工作线程。第一种是将工作项存储在队列中。当您有工作要做时,您将其插入队列并向 worker 发出信号。您的工作线程如下所示:

while( !quit ) {
WaitForWork();
GetWorkItem();
ExecuteWorkItem();
}

根据建议,这是您应该采用的方法。

另一种方法是维持 worker 队列。当您有需要做的工作时,您从队列中抓取一个工作程序(如果空,则创建一个工作程序),并告诉它运行该项目。第二种方法更难编码,通常效率较低。

关于c# - 托管线程一般建议3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/950850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com