在我的ViewModel我有這樣的代碼:爲什麼我的UI在使用System.Threading.Task類的時候被阻塞?
Logs = new ObservableCollection<Log>();
Logs = Task.Factory.StartNew(() => mainModel.GetLogs()).Result;
wtih日誌是一個非常簡單的類與一對夫婦的公共屬性。
根據我對Task類的理解,以這種方式調用的mainModel函數GetLogs()應該在單獨的線程上運行,並且它從數據庫中提取記錄時我的UI應該是響應式的,但這不是發生的情況,而是當記錄正在從數據存儲中提取時,我的用戶界面被阻止。
我希望有人能解釋爲什麼...... TIA。
編輯:我的任務類的understading不全,使用任務類的ContinueWith方法將確保異步執行作爲成員回覆說明如下......
換句話說,我應該先創建Task對象,然後在下一行代碼上調用StartNew並最後在下一行調用taskName.Result? – 2011-05-11 18:44:48
@kzen - 查看我的更新。 – 2011-05-11 18:52:49
謝謝,就是這樣......我對Task類的理解顯然並不完整,這並不奇怪,因爲我今天開始學習它:) – 2011-05-11 19:01:51