我想同時運行一個函數或同時運行函數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