对我执行的任务使用ContinueWith假设是异步运行,但它是否真的异步?我的意思是,如果我执行任务" t"并使用该任务来调用say t.ContinueWith(t => t.Result),这会异步运行吗?我知道它不会阻塞所有线程,直到结果完成,但它会将句柄完全返回给调用者,还是会在线程之间进行上下文切换。
答案 0 :(得分:2)
对我执行的任务使用ContinueWith假设是异步运行,但它是否真的异步?
是
我的意思是,如果我运行任务
t
并使用该任务调用说t.ContinueWith(t=>t.Result)
,这将是异步运行吗?
是
我知道它不会阻塞所有线程,直到结果完成,但它会将句柄完全返回给调用者,还是会在线程之间进行上下文切换。
我不知道你在说什么句柄。 ContinueWith()
做的是安排 continuation 在Task
完成后执行,然后立即返回。