【发布时间】:2011-11-04 07:11:28
【问题描述】:
我想在按钮单击事件中杀死/销毁我的应用程序中的线程。
private void stop_btn_Click(object sender, EventArgs e)
{
Thread.Sleep();
}
此事件是否会挂起我的应用程序?
这是我的线程开始的代码
DataTable myTable = new DataTable();`enter code here`
myTable = msgDataSet.Tables["text"];
DataRow[] myRow;
myRow = myTable.Select();
for (int x = 0; x < myRow.Count(); x++ )
{
SendKeys.SendWait(myRow[x]["msg"].ToString());
SendKeys.SendWait("{Enter}");
int sleep = int.Parse(textBox2.Text);
Thread.Sleep(sleep);
}
Thread Spam1 = new Thread(new ThreadStart(Send1));
Spam1.Start();
【问题讨论】:
-
Thread.Sleep 将活动的当前(您运行 stop_btn_Click 的)线程置于睡眠状态,因此应用程序挂起是正常的。
-
你想杀死哪个线程?您的应用程序的主线程?
-
@lvar 所以请告诉我如何通过挂起我的应用程序来停止线程?
-
@invisible 是的,我想关闭我的应用程序的主线程。
-
关闭应用程序的主线程(以及其他所有内容)而不保存/清理任何内容等。
Process.GetCurrentProcess().Kill()应该可以解决问题。
标签: c# multithreading