0
我正在使用Winforms C#.net应用程序。C#Winforms卡住并转到“无响应”状态
public partial class FormMain : Form
{
private bool cancelQueryWaitRequested = false;
public FormMain()
{
InitializeComponent();
}
private async void btnQueueStart_Click(object sender, EventArgs e)
{
QueryFinishedWait();
}
private int QueryFinishedWait()
{
int i = 1;
reQueueUIStart();
groupWaitQueue.Visible = true;
for (i = 0; i < 20; i++)
{
lblQueueWaitSeconds.Text = (20 - i).ToString();
Thread.Sleep(1000);
if (cancelQueryWaitRequested)
break;
}
groupWaitQueue.Visible = false;
reQueueUIStop();
return i;
}
}
当我执行此操作时,应用程序出现“未响应”,我可以看到处理器使用率变得非常高。
但是当我在btnQueueStart_Click
内运行相同的循环时,它工作正常。
我知道我做错了什么,还是不知道是什么。
在此先感谢。
你不应该在循环中进行倒计时,并在每次迭代中睡一秒钟。看看Timer类。 http://msdn.microsoft.com/en-us/library/system.timers.timer%28v=vs.110%29.aspx – 2014-11-22 13:00:06
我正在使用Thread.Sleep进行演示,但我正在使用await Task.Delay( 1000);实际功能。你是对的! – Kush 2014-11-22 13:22:41