2014-05-21 141 views
-1

我想知道如何從服務使用任務加載模型異步。 直到現在我在視圖模型中使用了BackgroundWorker。 有人能給我一個明確的例子嗎? 謝謝。使用任務加載模型異步使用任務

+2

這是一個非常普遍的問題。你有沒有在線看過'async-await'模型的例子?谷歌搜索將爲您提供數百萬美元。 – PoweredByOrange

+0

@PoweredByOrange,我*想*他們想知道如何向UI發佈狀態(或者如果有與OnProgress回調相對應的),但這是一個猜測。 –

回答

0

要加載使用TPL的典範,這裏的一些指示代碼...

 Task t = new Task(() => 
     { 
      // broadcast start of busy state 
     }); 
     t.ContinueWith((z) => 
     { 
      // load the model 
     }); 
     t.ContinueWith((x) => 
     { 
      // broadcast end of busy state 
     }); 
     t.Start(); 

的第一個任務讓UI知道應用程序正進入繁忙狀態,使用戶可以用可視化供應線索。

第二項任務執行繁重的工作。

最終任務宣佈工作已完成。 (x)的可查詢,以確定合適的UI消息(它的工作或沒有工作)

任務文檔是在這裏http://msdn.microsoft.com/en-us/library/vstudio/system.threading.tasks.task