我有,我需要在一個C#/ XAML應用程序在後臺線程運行的活動,所以我這樣做:無法獲得C#任務exection流正常工作
Task.Factory.StartNew(() => ImportFile());
我m將任務值返回到另一位代碼,然後在之後需要採取行動基於線程的工作已完成。代碼如下所示:
Action<Task> finalise = async delegate { await FinishImport(dbList); };
dbList.ImportFileAsync().ContinueWith(finalise);
當我運行的代碼,但是,正在後臺線程完成之前執行的FinishImport
調試語句。
什麼我誤解嗎?我認爲ContinueWith
的全部要點是它會在目標任務完成後執行延續代碼。
您可以包括演示此問題短,但完整的示例代碼?否則,回答這個問題需要很多猜測。 – svick
@PhilipColmer:你是否從特定的源獲得了'Task.Factory.StartNew'的想法?想知道爲什麼你有這樣的代碼... –
Task.Factory.StartNew的原因是因爲我最初嘗試過Task.Run,並且遇到了相同的延續代碼問題,實際上並沒有等待。此外,我需要導入文件有點「火,忘了」,因爲如果應用程序被暫停然後重新啓動,我需要重新啓動以便能夠再次啓動ImportFile,並且我的頭部與執行流的扭曲思想爆炸了一點。 「線程結束後」 –