嗨,通常我會用Background Worker來做這件事,但我想用C#Task來做,而不是更好地理解Task。運行多個C#任務異步
的事情是,我有以下特性
private int _number1;
public int Number1
{
get { return _number1; }
set { _number1 = value; OnPropertyChanged("Number1");}
}
private int _number2;
public int Number2
{
get { return _number2; }
set { _number2 = value; OnPropertyChanged("Number2");}
}
請注意,我用的是INotifyPropertyChanged的一類。
Number1 = Task<int>.Factory.StartNew(() => GenerateResult()).Result;
Number2 = Task<int>.Factory.StartNew(() => GenerateResult2()).Result;
GenerateResult和GenerateResult2只是沉悶的方法,誰睡覺,然後返回一個數字。
如何讓這項工作異步?由於現在,當GenerateResult()完成時,首先調用GenerateResult2()。
我需要它能夠工作異步,因爲我不知道什麼時候每個任務要完成或即使完成。
非常感謝Isak Savo工作完美,而且閱讀起來很簡單:-)更容易然後Backgroundworkers – gulbaek 2010-09-21 09:27:57
任何任務都將在工作線程上始終執行,這並不是明確的。結果只是阻止調用它的線程,直到它準備好輸出數據或設置異常。 – 2011-02-05 11:29:55
謝謝,我有一個調試線正在調用.Result,所以我可以做一個快速測試,並打破異步:O – John 2012-01-31 23:34:38