2011-09-18 47 views
1

所寫的,我最近讀到,在WinRT中,框架取代淨,可能超過50毫秒運行的時間更長的所有功能都是異步執行。所以我的問題是:將這作爲一般規則應用是否合理?假設一個在需要多線程反正的很多項目......如何決定是否功能應該異步

+0

一般情況下,是的。如果你花費太多時間在阻塞UI線程的非異步代碼上,那麼運行時會中止你的程序。截止日期是15秒。 –

回答

0

在一個通用的應用程序,沒有工作。

您沒有提供鏈接到語句,所以我假設它僅適用於圖形用戶界面。在這種情況下,這可能是有道理的,因爲長時間運行的函數會使應用程序無響應(對於GUI,50ms可能被認爲是「長時間運行」)。

在任何其他應用程序,您將需要協調作用的結果,以確保它們相對於應用程序中的其他功能排序。要做到這一點所需的努力 - 以及它將導致的維護成本 - 並不是微不足道的。

+0

任務框架允許異步函數容易協調,以確保它們與在該事項的所有案件(即那裏有一個數據依賴)對於其他功能有序 - 如果你需要等到一個異步函數執行完畢並閱讀其結果,你打電話給它,並訂閱延期到其返回的任務。 –