Visual Studio 任务 Window - 等待与阻塞任务
Visual Studio Task Window - awaiting vs blocked Tasks
在任务 Window 中,调试时,状态为“已阻止”与“正在等待”的任务有何区别?
我正在尝试通过数千个任务(计划的、等待的、阻塞的)来理解“错误版本”的内存转储,并且 Microsoft 文档似乎没有提供阻塞状态和等待状态之间的任何区别,据我了解。
摘自https://docs.microsoft.com/en-us/visualstudio/debugger/using-the-tasks-window?view=vs-2019
An awaiting or blocked task is one that is blocked because it is waiting on an event to be signaled, a lock to be released, or another task to finish.
我将在深入研究代码的同时关注同步机制,看看是否能找到差异和解释。
同时,我以为有人可能已经知道了,我没有找到任何类似的问题。谢谢!
您引用的 Microsoft 文档非常清楚地解释了“被阻止”:
https://docs.microsoft.com/en-us/visualstudio/debugger/using-the-tasks-window
A blocked task is one that is blocked because it is waiting on an
event to be signaled or a lock to be released
这是“经典阻塞I/O”,类似于 C 语言“read()”的行为。
另一方面,“等待”意味着 async/await。
这是一篇关于该主题的精彩文章:Asynchronous programming
在任务 Window 中,调试时,状态为“已阻止”与“正在等待”的任务有何区别?
我正在尝试通过数千个任务(计划的、等待的、阻塞的)来理解“错误版本”的内存转储,并且 Microsoft 文档似乎没有提供阻塞状态和等待状态之间的任何区别,据我了解。
摘自https://docs.microsoft.com/en-us/visualstudio/debugger/using-the-tasks-window?view=vs-2019
An awaiting or blocked task is one that is blocked because it is waiting on an event to be signaled, a lock to be released, or another task to finish.
我将在深入研究代码的同时关注同步机制,看看是否能找到差异和解释。
同时,我以为有人可能已经知道了,我没有找到任何类似的问题。谢谢!
您引用的 Microsoft 文档非常清楚地解释了“被阻止”:
https://docs.microsoft.com/en-us/visualstudio/debugger/using-the-tasks-window
A blocked task is one that is blocked because it is waiting on an event to be signaled or a lock to be released
这是“经典阻塞I/O”,类似于 C 语言“read()”的行为。
另一方面,“等待”意味着 async/await。
这是一篇关于该主题的精彩文章:Asynchronous programming