C#有什么办法让程序无限循环,又可人工退出?
实现程序启动后处于“死”循环状态,当按下Stop按钮后能退出。
请大侠们指点下小弟 谢了
问题点数:50、回复次数:10Top
1 楼xrwang(无涯)回复于 2006-03-23 15:04:17 得分 5
做一个专门循环的工作线程,但是该线程中通过检查某个值来决定是否继续循环;
在按下"停止"按钮后改变上面说的那个值,让它不再循环.Top
2 楼gflpower(燕赤侠)回复于 2006-03-23 15:04:33 得分 5
开启一个线程对象
bool Canrun;
while (canrun)
{
//执行无限
}
关键是要将设置canrun
以上只是思想
并没有C#代码
Top
3 楼Tom_Real()回复于 2006-03-23 15:06:07 得分 5
1、定义一个标志
2、循环中判断标志,并Sleep(10)
3、Stop事件更改标志Top
4 楼Sopleasure()回复于 2006-03-23 15:09:41 得分 0
public bool flag=true;
private void btnStart_Click(object sender, System.EventArgs e)
{
while(flag)
{
SessionDel();
}
}
private void btnStop_Click(object sender, System.EventArgs e)
{
flag=false;
}
我这样写有什么问题嘛?执行后就看不见stop按钮了。Top
5 楼CSDNATM(飞行员,麻烦帮开个窗让我透透气)回复于 2006-03-23 15:13:59 得分 5
TimerCallback TCfun = new TimerCallback(fun);
tmr = new System.Threading.Timer(TCfun ,null,3000,10);
要退出的时候就停了此线程。Top
6 楼xinggg(风之渡)回复于 2006-03-23 15:16:02 得分 10
public bool flag=true;
private void btnStart_Click(object sender, System.EventArgs e)
{
while(flag)
{
SessionDel();
Application.Doevents(); '这里多出一句了具体doevents是属于哪个对象不是很确定,自己查一下
}
}
private void btnStop_Click(object sender, System.EventArgs e)
{
flag=false;
}
Top
7 楼silencepen(沉默)回复于 2006-03-23 15:21:45 得分 4
用线程Top
8 楼whispers(快意人生)回复于 2006-03-23 15:30:03 得分 10
Application.DoEvents();Top
9 楼Ivony(授人以鱼不如授人以渔,上海谋生)回复于 2006-03-23 15:35:35 得分 2
都不知道你要干什么,如果真的是“死”循环,又怎么能点按钮?如果不是界面死掉,那程序开在那里你不动他窗口永远不会自己关闭……。Top
10 楼dqycxf(真爱你的云)回复于 2006-03-23 15:35:46 得分 4
最好的办法是开启一个线程,如xrwang(无涯) 和 gflpower(燕赤侠) 所说Top




