2013-11-02 37 views
-1

我有三個變量,我用同樣的方法對它們進行設置,我想將它們都在使用任務同一時間。設置多個變量同時採用任務與方法

下面是它看起來像現在:

double a = InputValidators.InputConverter(txtA.text); 
double b = InputValidators.InputConverter(txtB.text); 
double c = InputValidators.InputConverter(txtC.text); 

如何在使用任務同時使用的方法爲他們三個人?

如果有幫助,我正在使用C#.NET 4.5。

+4

「你在同一時間」是指什麼? –

+3

這是矯枉過正使用一個單獨的任務來閱讀文本框值 – sll

+0

它沒有矯枉過正,因爲方法那些更先進的動作,然後只是轉換文本,他檢查文本,然後拆分它,轉換每個部分,使用數學函數連接所有轉換後的零件,並返回最終值 – DavidS47

回答

2

這將異步運行這三個任務。無法控制他們何時開始或按什麼順序。請參閱Task Class

Func<string, double> func = str => InputValidators.InputConverter(str); 

Task<double> t1 = Task<double>.Factory.StartNew(() => func(txtA.text)); 
Task<double> t2 = Task<double>.Factory.StartNew(() => func(txtB.text)); 
Task<double> t3 = Task<double>.Factory.StartNew(() => func(txtC.text)); 

double a = t1.Result; 
double b = t2.Result; 
double c = t3.Result; 
+1

明確的是,他們不會「同時運行」,不是嗎?其他的東西是並行執行,但是你必須知道所有的信息(例如:循環中的元素)。 – varocarbas

+1

@varocarbas,絕對,這取決於TaskScheduler的決定,但絕對不是在同一時間 – sll

+0

@varocarbas我假設這是一個長時間運行的函數,他們應該是異步運行。我確實認爲他們不會在我的答案中同時開始。 – Harrison

相關問題