C# TryExecuteTask(任务)是否总是阻塞?
我正在编写一个FIFO排队线程受限的任务调度器 执行C# TryExecuteTask(任务)是否总是阻塞?,c#,.net,multithreading,.net-4.0,task-parallel-library,C#,.net,Multithreading,.net 4.0,Task Parallel Library,我正在编写一个FIFO排队线程受限的任务调度器 执行task时,对TaskScheduler.TryExecuteTask(task)的调用是否始终阻止?到目前为止的测试表明情况就是这样,但是我在任何地方都找不到这方面的文档 是否有任何理由在上述调用之后调用task.Wait()?如果任务以故障状态结束,则执行此操作将导致聚合异常。调用TryExecuteTask将始终被阻止,它在调用该函数的计划程序上运行您提供的任务,并在任务成功完成时返回 如果希望任务在其他线程中运行:上有一个示例,说明如何
task
时,对TaskScheduler.TryExecuteTask(task)
的调用是否始终阻止?到目前为止的测试表明情况就是这样,但是我在任何地方都找不到这方面的文档
是否有任何理由在上述调用之后调用
task.Wait()
?如果任务以故障状态结束,则执行此操作将导致聚合异常。调用TryExecuteTask
将始终被阻止,它在调用该函数的计划程序上运行您提供的任务,并在任务成功完成时返回
如果希望任务在其他线程中运行:上有一个示例,说明如何使用QueueUserWorkItem
通知线程池有要执行的工作。当您在其中调用TryExecuteTask
时,一个可用线程将拾取它并执行任务
task.Wait()
通常用于将任务传递给计划程序以阻止任务,直到任务完成。由于您没有在不同的线程中执行任务,因此代码仍然会阻塞并调用task.Wait()
将是多余的。可读性方面的小问题:在上面的第一句话中,“调度程序”一词是否应该是“线程”在以下短语中:“它运行您在[~~调度程序~~线程]上提供的任务”您正在对其调用函数“?