我有一个有很多选择的Combobox。用户选择的内容将他们带到案例陈述中。在这种情况下,选择的项目之一是字符串。现在这个字符串我想用来启动一个特定的函数线程。例如我有功能
public void DoWorkAP(){}
和另一个
public void DoWorkAG(){}
在组合框中,用户做出选择,案例statemtn将有一个名为sWhichWork的字符串,并设置为“DoWorkAG”或“DoWorkAP”
现在在UI代码中我有一个帖子
Thread t = null;
当按下一个按钮时,会调用一个函数,在这个函数中我有
t = new Thread(sWhichWork);
t.Start();
这似乎很好,因为我想将sWhichWork替换为“DoWorkAG”或“DoWorkAP”,而是我得到
“无法从'string'转换为System.Threading.ParameterizedThreadStart'”
现在我拿出SWhichWorks并有以下
t = new Thread(DoWorkAG);
t.Start();
这很好,因为它编译并带我到正确的地方。所以问题是如何从combox中选择一个变量字符串到案例stament将我带到同一个地方?
答案 0 :(得分:0)
如果您只有两个选项,我会选择
t = new Thread(sWhichWork == "DoWorkAG" ? DoWorkAG : DoWorkAP);
这也可行:
t = new Thread(this.getType().GetMethod(sWhichWork).Invoke(this, new object[]));
答案 1 :(得分:0)
你只需打开线程:
var action = myComboBox.Text;
new Thread(() => {
if (action == "1") F1();
else F2();
});
超级简单。