我不確定它還沒有實現,我希望它是。但我知道.Net程序員應該在後臺線程中手動運行耗時的任務。如何在後臺自動運行?
所以,每次我們處理一些UI事件,我們知道這需要一些時間,我們也明白,這將掛起UI線程和我們的應用程序。然後我們使所有這些背景工作,並處理回調或其他。
所以我的問題是:
在一些語言/平臺是否有會自動在後臺運行耗時的任務,並執行相關的所有工作本身的機制?因此,我們只編寫用於處理特定UI事件的代碼,並且該代碼將以某種方式檢測爲耗時且將在後臺執行。
如果沒有,那爲什麼?
我不確定它還沒有實現,我希望它是。但我知道.Net程序員應該在後臺線程中手動運行耗時的任務。如何在後臺自動運行?
所以,每次我們處理一些UI事件,我們知道這需要一些時間,我們也明白,這將掛起UI線程和我們的應用程序。然後我們使所有這些背景工作,並處理回調或其他。
所以我的問題是:
在一些語言/平臺是否有會自動在後臺運行耗時的任務,並執行相關的所有工作本身的機制?因此,我們只編寫用於處理特定UI事件的代碼,並且該代碼將以某種方式檢測爲耗時且將在後臺執行。
如果沒有,那爲什麼?
你可以看看像Quartz for .Net。它是一個作業調度程序,但可用於在後臺線程中運行耗時的進程。
看起來仍然太多冗餘工作,或者可能是我太懶惰了:) – Hun1Ahpu 2010-04-18 19:04:00
在Haskell(和其他函數式語言)中已經做了很多工作,使它能夠在其他線程中自動執行任務。但Haskell不是最簡單的GUI編程語言。
沒有(據我所知),原因是因爲計算機事先並不知道某個任務需要多長時間才能完成。毫無疑問 - 程序員可以在特定情況下設計出一種計算機算法,以確定某個特定任務的預期持續時間 - 但目前還無法讓計算機確定任意任務需要花費多長時間。這是一個非常重要的計算機科學問題的結果,稱爲Halting Problem。
聽起來像一個有趣的項目! – 2010-04-18 18:45:22