gpt4 book ai didi

.net - 使用WaitHandle.WaitAll时是否可以在ThreadPool中对任务进行分组/隔离?

转载 作者:行者123 更新时间:2023-12-03 12:53:19 30 4
gpt4 key购买 nike

我面临的情况如下。因为ThreadPool是每个进程1个实例,所以我的问题是是否会在 3秒后取消方法2排队的任务?

http request comes in

*method 1 gets executed first*:

ThreadPool.QueueUserWorkItem x 3
WaitHandle.WaitAll for 3 seconds

*method 2 gets executed after method 1*:

ThreadPool.QueueUserWorkItem x 10
WaitHandle.WaitAll for 10 seconds


对不起,我想我完全误解了WaitHandle的用法。看来,如果我做不到,一切都会按预期进行。非常抱歉给您带来的困惑。
var calls = new ManualResetEvent[5];
//ThreadPool.QueueUserWorkItem blah...
WaitHandle.WaitAll(calls, timeOut);

但是我仍在思考,如果方法1充斥着长时间运行的任务的线程池,而方法2仅等待1秒钟,将会发生什么情况。方法2会因为其等待时间不够长而使结果返回。

谢谢。

最佳答案

不,它不会取消任务。只是您宁愿停止等待。顺便说一句,当WaitAll超过超时时间时,是否会抛出超时异常?

关于.net - 使用WaitHandle.WaitAll时是否可以在ThreadPool中对任务进行分组/隔离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2322557/

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