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

线程有关问题怎么在for循环10秒循环一次中某一循环,循环5秒就进行下一次循环

2012-06-15 
线程问题如何在for循环10秒循环一次中某一循环,循环5秒就进行下一次循环如何在for循环10秒循环一次中某一

线程问题如何在for循环10秒循环一次中某一循环,循环5秒就进行下一次循环
如何在for循环10秒循环一次中某一循环,循环5秒就进行下一次循环  
代码如下
for (var i = 0; i < 10; i++)

  Thread.Sleep(TimeSpan.FromSeconds(10));

  比如循环到第5次时,不是固定10秒后下一次循环,而是线程等待5秒就进来下一次循环,可以是外界触发。
求代码啊

[解决办法]
what?
[解决办法]
没看明白楼主的意思
[解决办法]

C# code
bool bChange = false; //定义全局变量,然后提供接口从外部可以设置bChange的值for (var i = 0; i < 10; i++){    if(bChange)    {        bChange = false;        Thread.Sleep(TimeSpan.FromSeconds(5));    }    else    {        Thread.Sleep(TimeSpan.FromSeconds(10));    }}
[解决办法]
C# code
for (var i = 0; i < 10; i++){  if(i=4){Thread.Sleep(TimeSpan.FromSeconds(5));}else{  Thread.Sleep(TimeSpan.FromSeconds(10));}}
[解决办法]
continue;
[解决办法]
你为什么不用timer呢

[解决办法]
好像是给循环子加个超时限制的意思
C# code
private AutoResetEvent autoEvent = new AutoResetEvent(false);public void TestTimeLimit(){    int timeOut = 2;                for(int i=1; i<=5; i++)    {                        Console.WriteLine("第{0}次循环, 限时{1}秒!", i, timeOut);        Thread t = new Thread(new ParameterizedThreadStart(            (evt) =>            {                var sw = new System.Diagnostics.Stopwatch();                sw.Start();                 Thread.Sleep(new Random().Next(100, 4000));                sw.Stop();                                                if ( sw.ElapsedMilliseconds / 1000 < timeOut)                {                    Console.WriteLine("正在执行操作..本次耗时:{0}毫秒!", sw.ElapsedMilliseconds);                    ((AutoResetEvent)evt).Set();  //发出通知信号                   }                                    }));        t.Start(autoEvent);                       if (this.autoEvent.WaitOne(TimeSpan.FromSeconds(timeOut), false))            Console.WriteLine("本次操作没有超时!\r\n");        else        {                                Console.WriteLine("*********操作已超时, 直接进入下一次循环!**********\r\n");            continue;        }    }}/*第1次循环, 限时2秒!*********操作已超时, 直接进入下一次循环!**********第2次循环, 限时2秒!正在执行操作..本次耗时:605毫秒!本次操作没有超时!第3次循环, 限时2秒!正在执行操作..本次耗时:1218毫秒!本次操作没有超时!第4次循环, 限时2秒!*********操作已超时, 直接进入下一次循环!**********第5次循环, 限时2秒!*********操作已超时, 直接进入下一次循环!***********/ 

热点排行