【发布时间】:2011-11-23 17:33:33
【问题描述】:
我在按下启动按钮时启动一个线程,该按钮启动一个延迟计时器,然后显示一个消息框对话框。 现在,我试图停止这个线程,但我找不到办法,除了添加一个标志,它会阻止线程显示 messageBox 对话框但不会杀死线程。 如果您能提出一种杀死线程的方法,我将不胜感激。
谢谢 莫提
public partial class Form1 : Form
{
public delegate void example();
ThreadA threadA = null;
public Form1()
{
InitializeComponent();
}
example ex;
IAsyncResult result;
private void button_Start_Click(object sender, EventArgs e)
{
ex = new example(start);//.BeginInvoke(null, null);
result = ex.BeginInvoke(null, null);
}
private void button_Stop_Click(object sender, EventArgs e)
{
if (threadA != null)
threadA = null;
}
private void start()
{
if (threadA == null)
{
threadA = new ThreadA();
threadA.run();
}
}
}
class ThreadA
{
//public event
public Boolean flag = false;
public void run()
{
Thread.Sleep(15000);
MessageBox.Show("Ended");
}
}
【问题讨论】:
标签: c# multithreading begininvoke