C# 线程问题!
private void button1_Click(object sender, EventArgs e)
{
Thread TD = new Thread(showwaitfrm);
TD.Start();
Thread.Sleep(1000); dataGridView1.DataSource = getdate();
TD.Abort();
TD.Join();
}
如上 我在按钮里面开启了一个线程
然后如果我不停的点击按钮
过一会就报错!线程正在终止!
求教!
------解决方案--------------------线程没有执行结束时禁止再次点击。
最好的办法是异步执行。
------解决方案--------------------C# code
private void button1_Click(object sender, EventArgs e)
{
button1.Enabled = false;
Thread TD = new Thread(showwaitfrm);
TD.Start();
Thread.Sleep(1000);
dataGridView1.DataSource = getdate();
TD.Abort();
TD.Join();
while(TD.ThreadState != System.Threading.ThreadState.Stopped) Application.DoEvents();
button1.Enabled = true;
}
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
你这个不用多线程可以解决的啊,你这个不就是那个加载界面的问题吗?你查查,许多这样的帖子,就是先在等待窗体里面把对象初始化好,然后显示主界面。你如果用多线程,他们齐头并进你怎么控制流程啊?
------解决方案--------------------
最好把你要开的那个线程定义成全局的,在每次开之前判断线程是否正在运行,如果是就关闭线程然后再重新开启。
Thread TD=null;
private void button1_Click(object sender, EventArgs e)
{
if(TD!=null&&TD.IsAlive==True)
TD.Abort();
Thread TD = new Thread(showwaitfrm);
TD.Start();
Thread.Sleep(1000); dataGridView1.DataSource = getdate();
TD.Abort();
}