Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TryExecuteTask(任务)是否总是阻塞?_C#_.net_Multithreading_.net 4.0_Task Parallel Library - Fatal编程技术网

C# TryExecuteTask(任务)是否总是阻塞?

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将始终被阻止,它在调用该函数的计划程序上运行您提供的任务,并在任务成功完成时返回 如果希望任务在其他线程中运行:上有一个示例,说明如何

我正在编写一个FIFO排队线程受限的任务调度器

执行
task
时,对
TaskScheduler.TryExecuteTask(task)
的调用是否始终阻止?到目前为止的测试表明情况就是这样,但是我在任何地方都找不到这方面的文档


是否有任何理由在上述调用之后调用
task.Wait()
?如果任务以故障状态结束,则执行此操作将导致聚合异常。

调用
TryExecuteTask
将始终被阻止,它在调用该函数的计划程序上运行您提供的任务,并在任务成功完成时返回

如果希望任务在其他线程中运行:上有一个示例,说明如何使用
QueueUserWorkItem
通知线程池有要执行的工作。当您在其中调用
TryExecuteTask
时,一个可用线程将拾取它并执行任务


task.Wait()
通常用于将任务传递给计划程序以阻止任务,直到任务完成。由于您没有在不同的线程中执行任务,因此代码仍然会阻塞并调用
task.Wait()
将是多余的。

可读性方面的小问题:在上面的第一句话中,“调度程序”一词是否应该是“线程”在以下短语中:“它运行您在[~~调度程序~~线程]上提供的任务”您正在对其调用函数“?