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();
}