如果我创建了一个委托以允许将多个参数传递到线程启动方法中,如本答案中所述,那么将值从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
有返回类型吗?
使用所描述的任何一个过程是否有任何优点或缺点,即使它只是归结为代码的结构/组织?