none
如何保证一段代码运行时间不超过100ms,如果超过自动退出? RRS feed

  • 问题

  • 你好,如题,有段代码每隔一段时间运行,每次运行不能超过100ms,否则会报错,如何人工判断运行时间不超过100ms呢?

    超出了自动退出,谢谢

    2012年7月3日 9:18

答案

  • var del = new Action(()=>{/*你要运行的代码*/});

    var res=del.BeginInvoke(/*适当的参数*/); if(res.AsyncWaitHandle.WaitOne(100))

    { ...}

    else

    {...}

    del.EndInvoke(res);//重要


    这个方法不用timer,比较原生一点。


    2012年7月7日 14:46

全部回复

  • 如果报错了,加上Try --catch判断,这次执行就越过了


    http://blog.csdn.net/zx13525079024

    2012年7月4日 1:15
  • Hi A013strife,

    将这段代码放到一个线程中,启动线程的时候timer开始计时,timer的间隔就是100ms,timer.tick事件触发后,中止线程。

    你试试。

    Best regards,


    Mike Feng
    MSDN Community Support | Feedback to us
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年7月4日 10:41
    版主
  • try catch后已经晚了,第三方dll会退出
    2012年7月5日 4:46
  • var del = new Action(()=>{/*你要运行的代码*/});

    var res=del.BeginInvoke(/*适当的参数*/); if(res.AsyncWaitHandle.WaitOne(100))

    { ...}

    else

    {...}

    del.EndInvoke(res);//重要


    这个方法不用timer,比较原生一点。


    2012年7月7日 14:46