如果我創建了一個允許將多個參數傳遞給線程啓動方法的代理(如this answer中所述),那麼將RealStart
方法的值返回到啓動方法的最佳方法是什麼線?從線程返回值
正如我所看到的,我的選擇是要麼創建一個靜態變量。
private static Boolean result;
private static String message = "";
public Thread StartTheThread(SomeType param1, SomeOtherType param2) {
var t = new Thread(() => RealStart(param1, param2));
t.Start();
return t;
}
private static void RealStart(SomeType param1, SomeOtherType param2) {
...
}
或包裹委託一類
private class TestThread
{
public String message = "";
public Boolean result;
public Thread StartTheThread(SomeType param1, SomeOtherType param2) {
var t = new Thread(() => RealStart(param1, param2));
t.Start();
return t;
}
private static void RealStart(SomeType param1, SomeOtherType param2) {
...
}
}
一個問題我使用一個類看到的是,它一定程度上通過委託否定傳遞參數的點,因爲我可以將它們傳遞到我初始化它時的類。
(或不以這種方式使用它的第三個選項) 難道RealStart
曾經有一個返回類型?
即使它只是涉及到代碼的結構/組織,是否有任何優點或缺點使用任何一個描述的流程?
有沒有什麼不能使用的理由'Task'?因爲這就是我通常會使用的。 – 2013-04-11 09:51:34