首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

`怎么在外部终止for循环~进来有分`

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

```如何在外部终止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()


{
while(true)
{
if(p)
break;
else
{ Thread.Sleep(100);
Application.DoEvents();
}
}

private void b()
{
if(.......)
p=true;
}

[解决办法]
Js么用定时器就可以了

var xx;
function test(){
var objCount = document.getElementById( "textCount ");
objCount.value = parseInt(objCount.value) + 1;
}
function begin(){
var b = document.getElementById( "button_1 ");
if (b.value == "Begin ") {
b.value = "End ";
xx = setInterval( "test() ",1000)
}else{
b.value = "Begin ";
clearInterval(xx);
}
}

<input type= "text " id= "textCount " value= "0 " />
<input type= "button " id= "button_1 " onclick= "begin(); " value= "Begin "/>

[解决办法]
bool endFor = false;

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

buttonX_click(...)
{
endFor = true;
}
这个似乎可行,LZ可以试试看
[解决办法]
如果是 js 呢
就应该定义 endFor 为全局变量

<script>
var endfor = false;

function methodFor(){
for ---> ::: endFor != true....
}

function click(){
endFor = true;
}
</script>

热点排行