我的代碼中的任務(t
)不能在我的代碼中直接在我的代碼中使用。我得到以下錯誤:動作委託內的任務實例
代碼:
Task t = Task.Factory.StartNew(() =>
{
MessageBox.Show(t.Id.ToString());
});
現在,如果我做了以下工作:
Task t = null;
t = Task.Factory.StartNew(() =>
{
MessageBox.Show(t.Id.ToString());
});
可能有人請解釋爲什麼是這樣的話?
這兩個片段(在問題中)具有相同的競爭條件。但編譯器不知道,錯誤來自靜態分析。 – 2012-07-26 11:22:59
@HenkHolterman是的,它仍然存在。這個想法是爲了使比賽條件更加明顯。 – dasblinkenlight 2012-07-26 11:23:29
很好的解釋,謝謝。那麼,在代理中訪問我的任務實例有沒有安全的方法? – davenewza 2012-07-26 11:24:38