level 3
请问 ① 我只start了一次线程 没有停止线程 那么 这个线程里面的代码是重复执行的吗?
②以下代码为何break 不出while 循环?
2017年08月02日 10点08分
1
level 3
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate()
{
while (true)
{
if (a)
{
。。。。
}
else if (b)
{
。。。。
}
else if (c)//结束 跳出循环
{
break;
}
this.DoEvents();
}
});
2017年08月02日 10点08分
2
level 3
原代码
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart)delegate()
{
while (true)
{
if (state_carrot_fall == enum_carrot_fall.FREE)//没有萝卜在下落
{
carrot1_x = random.Next(50, 970);//横坐标随机生成一个萝卜
Canvas.SetLeft(image_carrot1, carrot1_x);
image_carrot1.Visibility = Visibility.Visible;
storyboard_carrot.Begin();
state_carrot_fall = enum_carrot_fall.BUSY;//有萝卜在下落
}
else if (state_carrot_fall == enum_carrot_fall.BUSY)
{
defen();//调用函数
}
else if (state_carrot_fall == enum_carrot_fall.EXIT)//结束 跳出循环
{
break;
}
//Thread.Sleep(100);
this.DoEvents();//将控制权传给操作系统。当操作系统处理完队列中的事件,并且在 SendKeys 队列中的所有键也都已送出之后,返回控制权。
//使用DoEvents()要添加一个Ex.cs文件
}
});
2017年08月02日 10点08分
3