日期:2014-05-18  浏览次数:21112 次

```如何在外部终止for循环~~进来有分``
如果有一个循环````
怎样在外部用一个按钮或是什么````使循环结束啊~~

------解决方案--------------------
这个循环必须是在两个不同的线程中才可以

------解决方案--------------------
貌似要用线程
------解决方案--------------------
bool endFor = false;

for(....)
{
if (endFor == true)
{
break;
}
}

buttonX_click(...)
{
endFor = true;
}
------解决方案--------------------
设置个bool变量,循环中判断这个变量再执行循环,想停止循环的时候只要改变这个bool值就行
------解决方案--------------------
楼上正解!就像执行一个循环时提供一个取消按钮供用户终止操作
------解决方案--------------------
for(....)
{
//
}
Lable1:
.......

buttonX_click(...)
{
goto Lable1
}

------解决方案--------------------
定义一个变量,赋个初值,循环根据是否等于这个初值而判断循环,点击按钮时改变这个初值,
其中要注意循环中要加缓冲,要不然很容易死.
------解决方案--------------------
你的循环
private void ThreadTask()
{
while (true)
{
//
System.Threading.Thread.Sleep(10);
}

开始循环的地方
System.Threading.Thread trd = new System.Threading.Thread(new System.Threading.ThreadStart(this.ThreadTask));
trd.IsBackground = true;
trd.Start();

要技术循环时
trd.Stop();
------解决方案--------------------
是需要两个线程;一个个bool变量isContinue;
后台线程执行for循环;
{
for(;isContinue==true;){}
}
在前台,比如点击按钮{isContinue=false;}

------解决方案--------------------
HOHO~那么也可以使用委托来定义一个带有返回值的函数,用委托函数的返回值来判断循环是否继续。
------解决方案--------------------
public void Start()
{
ForLoop = new Thread(new ThreadStart(LoopControlThread)); // 定义一个新线程
IsContinue = true; // 定义标志
ForLoop.IsBackground = true; // 后台运行
ForLoop.Start(); // 开始咯
}
public void ClickToStop()
{
IsContinue = false;
}

private static IsContinue = true;
private Thread ForLoop;

private void LoopControlThread()
{
for(;IsContinue;) Thread.Sleep(100);
}
------解决方案--------------------
多线程,就如同我们监听一个按钮事件一样!
thread1 for 循环
thread2 就用来设置条件!
for(int i = 0; (i < cout) && IsStop;i++)
{}
Thread2.Start(new ThreadStart(SetBool));
Thread.Sleep(500);
void SetBool()
{
IsStop = true;
}
------解决方案--------------------
肯定是多线程了
让你的循环在另一个线程中执行
------解决方案--------------------
bool endFor = false;

for(....)
{
if (endFor == true)
{
break;
}
}

buttonX_click(...)
{
endFor = true;
}
---------------------
PS:欣赏你的思路,比较强悍!
---------------------
------解决方案--------------------
刚才没写误按提交了.

private bool p=false;
private void a()