有沒有辦法將狀態對象傳遞給.net 4.0中的ContinueWith函數?該選項在.net 4.5中可用。如何繼續使用先行的狀態對象?
我回顧了.net 4.0的源代碼,它在創建繼續任務時將狀態對象硬編碼爲空。
有沒有辦法將狀態對象傳遞給.net 4.0中的ContinueWith函數?該選項在.net 4.5中可用。如何繼續使用先行的狀態對象?
我回顧了.net 4.0的源代碼,它在創建繼續任務時將狀態對象硬編碼爲空。
.NET 4版本ContinueWith
不提供此選項。
但是,您可以使用閉包或將數據包裝到Task<T>
本身,具體取決於如何生成這些數據,以便訪問在先行任務中創建的狀態數據。
任務的AsyncState成員應該是您提供原始任務狀態的值,即使在ContinueWith中引用爲先行任務時也是如此。這對.Net 4.0有效。
Task.Factory
.StartNew(state => ..., myState)
.ContinueWith(task => task.AsyncState == myState);