如果我创建了一个允许将多个参数传递给线程启动方法的代理(如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