-
-
[旧帖]
[求助]写C#程序时遇到的一个问题,求大神解惑
0.00雪花
-
发表于:
2015-5-30 10:45
1569
-
[旧帖] [求助]写C#程序时遇到的一个问题,求大神解惑
0.00雪花
有问题的代码如下:
private void WaitForm_Load(object sender, EventArgs e)
{
//this.Owner.Enabled = false;
IsStop = false;
closeThisForm();
}
private void closeThisForm()
{
while (!IsStop)
{ }
this.Close();
IsStop = false;
}
这里面的IsStop是一个信号量,想要做到的是当另一个线程将IsStop置为true时,while循环结束,从而关闭WaitForm这个窗口,然而运行起来后却是while进入无限循环,并不会停止。但是,如果将closeThisForm另起一个线程,代码如下:
private void WaitForm_Load(object sender, EventArgs e)
{
//this.Owner.Enabled = false;
IsStop = false;
t = new Thread(new ThreadStart(closeThisForm));
t.Start();
}
private void closeThisForm()
{
while (!IsStop)
{ }
this.Close();
IsStop = false;
}
这样就可以做到终结while循环。这是为什么?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课