[英]Wait for Tasks to complete at shutdown without deadlocking
在任何給定時間,我的WPF應用程序都會在后台線程/同步上下文上運行一堆異步Task
。 在關閉時,我需要設置一個CancellationToken
,然后等待這些任務正常完成,然后才能開始拆除它們所依賴的本機庫。 但是某些任務具有(必須)在主線程上運行的延續,因此從同一線程調用Task.WaitAll(_myTasks)
將導致死鎖。 我想做的是這樣的:
while(!AreAllTasksComplete(_myTasks))
LetContinuationsThatAreWaitingForThisContextRun();
TearDownTheNativeLibraries();
但是,當然不存在LetContinuationsThatAreWaitingForThisContextRun()。 有什么辦法可以做我想做的事嗎? 我需要一種完全不同的方法嗎?
你可以做
await Task.WhenAll(_myTasks);
TearDownTheNativeLibraries();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.