【发布时间】:2013-03-12 16:20:11
【问题描述】:
我正在阅读 this question 并由 Hans 回答,但我仍然需要澄清。
阿法伊克,
异步方法的目的是允许许多任务在其上运行 线程少;而异步委托的目的是执行一个 任务与调用者并行。
但是关于这两个异步操作:
如果BeginInvoke立即返回给调用者(它使用异步委托),那么必须有其他线程实际完成这项工作并在何时发出信号它完成了。
那么使用 that 线程与常规线程池线程有什么区别? 我回答:只有那些线程池线程已经存在并等待运行的事实?
但是,当BeginInvoke 运行并立即返回时,实际上有人 else 已经完成了肮脏的工作(并且代码必须在正在处理的线程下运行。)所以必须有在某处创建线程(在 beginXXX 调用之后运行)
我错过了什么?
【问题讨论】:
标签: c# asynchronous .net-4.0