gpt4 book ai didi

c# - TryExecuteTask(task) 总是阻塞吗?

转载 作者:太空宇宙 更新时间:2023-11-03 12:49:57 25 4
gpt4 key购买 nike

我正在编写一个 FIFO 队列线程限制任务调度程序。

TaskScheduler.TryExecuteTask(task) 的调用是否总是在 task 执行时阻塞?到目前为止的测试表明情况确实如此,但是我无法在任何地方找到它的记录。

是否有任何理由在上述调用之后调用 task.Wait()?如果任务以 Faulted 状态结束,则执行此操作会导致 AggregateException

最佳答案

TryExecuteTask 的调用将始终阻塞,它会在您调用该函数的调度程序上运行您提供的任务,并在任务成功完成时返回。

如果您希望任务在不同的线程中运行:在 this page有一个关于如何使用 QueueUserWorkItem 通知 ThreadPool 有工作要执行的示例。当您在那里调用 TryExecuteTask 时,一个可用的线程会选择它并执行任务。

task.Wait() 通常在将任务传递给调度程序时使用,以阻塞直到任务完成。由于您没有在不同的线程中执行任务,因此无论如何代码块和调用 task.Wait() 都是多余的。

关于c# - TryExecuteTask(task) 总是阻塞吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35931200/

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