gpt4 book ai didi

c# - ThreadPool.QueueUserWorkItem - 订单未保留?

转载 作者:行者123 更新时间:2023-11-30 13:19:50 25 4
gpt4 key购买 nike

我刚刚注意到通过 ThreadPool.QueueUserWorkItem 排队的回调顺序不是确定性的,它肯定不是回调传入的顺序。

这可以用下面的简单程序来验证:

    private static void Main()
{
for (var i = 0; i < 10; ++i)
ThreadPool.QueueUserWorkItem(Console.Write, i + " ");

Thread.Sleep(1000);
}

一次运行的输出是:

0 3 8 9 1 2 5 4 6 7

顾名思义,顺序是保留的。

有没有办法确保顺序被保留?
如果不是,您建议采用哪种替代实现方式?

最佳答案

如果您希望任务串行运行但在与调用线程不同的线程上,那么您应该查看 EventLoopSchedulerReactive Extensions .它允许您在特定工作线程上安排工作单元。

关于c# - ThreadPool.QueueUserWorkItem - 订单未保留?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14505929/

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