ContinueWith a Task on the Main thread

前端 未结 1 447
春和景丽
春和景丽 2021-01-19 04:03

Forgive me if this is a simple question; I couldn\'t phrase it in a generic enough way to search for the answer.

Consider this code:

var task = Task.         


        
1条回答
  •  挽巷
    挽巷 (楼主)
    2021-01-19 04:13

    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?

    When the asynchronous call completes, the continuation will be scheduled. The effect of that scheduling depends on the scheduler (of course) but for a "normal" WPF or Windows Forms message loop, I'd expect it to be scheduled in a similar way to a call to Control.BeginInvoke or Dispatcher.BeginInvoke - in other words, when the "main" thread has finished the rest of the tasks which had been scheduled before this one.

    I wouldn't expect the main thread to magically stop what it's doing and execute the continuation. It could make the continuation a high-priority task in its queue, however.

    0 讨论(0)
提交回复
热议问题