C#中WinForm的界面未响应卡顿问题
例如,上传下载可能需要较长时间才能完成。怎么解决?
工作线程Work Thread
如果事件处理需要较长时间,应当创建一个线程来处理这个任务。此线程称为“工作线程”
实例1:卡顿
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("start");
Thread.Sleep(5000);
MessageBox.Show("end");
}
实例2:解决卡顿
private void button1_Click(object sender, EventArgs e)
{
Thread th = new Thread(new ThreadStart(this.Execute));
th.Start();
}
private void Execute()
{
MessageBox.Show("start");
Thread.Sleep(5000);
MessageBox.Show("end");
}
界面线程:一直运行,处理界面事件
工作线程:工作完成后退出