gpt4 book ai didi

c# - ContinueWith 主线程上的任务

转载 作者:太空狗 更新时间:2023-10-30 00:33:32 27 4
gpt4 key购买 nike

如果这是一个简单的问题,请原谅我;我无法用足够通用的方式来表达它来搜索答案。

考虑这段代码:

var task = Task.Factory.StartNew(() => Whatever());  
task.ContinueWith(Callback, TaskScheduler.FromCurrentSynchronizationContext())

回调方法执行的具体时间是如何确定的?

它会等到主线程当前完成它正在做的事情,还是会在异步调用完成后立即被调用?这个回调是否会在主线程返回到它之前正在做的事情之前完全执行?

最佳答案

Will it wait until the main thread is currently finished doing whatever it is doing, or will it get called immediately after the asynchronous call is complete?

当异步调用完成时,将安排继续。该调度的效果取决于调度程序(当然),但对于“正常”WPF 或 Windows 窗体消息循环,我希望它以类似于调用 Control.BeginInvoke 的方式进行调度。或 Dispatcher.BeginInvoke - 换句话说,当“主”线程完成了在此任务之前安排的其余任务时。

我不希望主线程神奇地停止它正在做的事情并执行延续。但是,它可以使延续成为其队列中的高优先级任务。

关于c# - ContinueWith 主线程上的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11397163/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com