酷酷七友软件定做 酷酷七友软件

网络教程

分享一个超级延时方法C#(其实也适用于java)

 分享一个超级延时方法C#(其实也适用于java)

      做多线程开发时,我们经常要用到Thread.sleep,然面这货挂起线程后想随时控制它就不好办了。比如sleep(100*1000),一旦执行,你要等100秒后才能对该线程操作,用户体验很差。

     有人会说用Suspend就行了,可惜微软早已不建议使用此方法!这里我想到了一个比较好的控制延时方法,直接上代码吧:

/// <summary>
        /// 设置延时
        /// </summary>
        ///<param name="iSleepSec">延时xx秒</param>
        /// <returns>true则继续,false要退出线程</returns>
        bool doSleep(int iSleepSec)
        {
            if (iSleepSec > 0)
            {
                //这样对于超长的延时都可以即时响应用户操作
                for (int iSleep = 0; iSleep < iSleepSec; iSleep++)
                {
                    if (isStop)
                        return false;

                    Thread.Sleep(1000);
                }
            }
      
            return true;

        }