我想同时运行一个函数或同时运行函数A和B,具体取决于相应的复选框c_A
和c_B
是否被chcecked。我还想通过按停止按钮来停止所有(一个或两个)运行功能。我试过下面的代码。当只有一个chceck盒子被删除时,它就会被启动。当chceckboxes被chcecked时,只有函数A运行。当我按下停止按钮时,运行功能不会停止。同时运行更多功能
private void Start_Click(object sender, EventArgs e)
{
ThreadStart ts_A = delegate()
{
};
if (c_A.Checked)
{
t_A = new Thread(ts_A);
t_A.Start();
function_A();
}
ThreadStart ts_B = delegate()
{
};
if (c_B.Checked)
{
t_B = new Thread(ts_B);
t_B.Start();
function_B();
}
}
private void Stop_Click(object sender, EventArgs e)
{
t_A.Abort();
t_B.Abort();
}
您的'ts_A'和'ts_B'指向空的代表。这没有任何用处。如果你想在相应的线程中调用'function_a'和'function_b',然后在这些委托中包装一个调用语句。 – 2015-04-03 05:40:55
请不要**在线程中调用Abort(),除非您正在关闭应用程序。否则调用它是危险的。请阅读以下内容:http://stackoverflow.com/a/1560567/259769 – Enigmativity 2015-04-03 06:04:00
请参阅[“应该在其标题中包含”标签“的问题吗?”](http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles),其中共识是“不,他们不应该”! – 2015-04-03 06:43:29