大神们好。问一个很弱的问题。
一个线程里我想每100ms执行一次循环。c++我一般这么写 while(::WaitForSingleObject(pTimeDriver->hExit_,100)==WAIT_TIMEOUT)c#里我好像没找到类似的写法。求鄙视,求指点线程

解决方案 »

  1.   


    While(true)
    {
       xxxxx
      Thread.Sleep(100);
    }
      

  2.   

    你看我的c++的代码。即使我设置成5秒(5000),只要我把退出信号量设置成通知状态。立刻就退出了。我总不能写 sleep(5000)吧
      

  3.   

    那改用  AutoResetEvent sinel = new AutoResetEvent();
                
    while(sinel.WaitOne(500))
    {
      xxx;
    }
      

  4.   

    什么叫“线程内”啊?线程就是执行一个方法的,方法执行完毕了,线程就自动结束了。如果要多次定时执行方法,至少你不应该想当然地假设在“同一个”线程中去执行方法。关于定时,可以参考msdn:http://msdn.microsoft.com/zh-cn/library/system.threading.timer.aspx
      

  5.   

    你应该把要设计的东西当作一个策略来设计,而不是想当然地先假设“一个线程内xxxxx”这样过早地纠结于底层的技术问题。你把流程想明白了,再考虑如何调度方法的问题。