线程中每100ms执行一次某段代码,应该怎么写呢

hanbingture 2013-06-22 08:23:48
大神们好。问一个很弱的问题。
一个线程里我想每100ms执行一次循环。c++我一般这么写 while(::WaitForSingleObject(pTimeDriver->hExit_,100)==WAIT_TIMEOUT)

c#里我好像没找到类似的写法。求鄙视,求指点
...全文
619 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你应该把要设计的东西当作一个策略来设计,而不是想当然地先假设“一个线程内xxxxx”这样过早地纠结于底层的技术问题。你把流程想明白了,再考虑如何调度方法的问题。
  • 打赏
  • 举报
回复
什么叫“线程内”啊? 线程就是执行一个方法的,方法执行完毕了,线程就自动结束了。 如果要多次定时执行方法,至少你不应该想当然地假设在“同一个”线程中去执行方法。 关于定时,可以参考msdn:http://msdn.microsoft.com/zh-cn/library/system.threading.timer.aspx
本拉灯 2013-06-22
  • 打赏
  • 举报
回复
引用 3 楼 hanbingture 的回复:
你看我的c++的代码。即使我设置成5秒(5000),只要我把退出信号量设置成通知状态。立刻就退出了。我总不能写 sleep(5000)吧
那改用

  AutoResetEvent sinel = new AutoResetEvent();
            
while(sinel.WaitOne(500))
{
  xxx;
}
hanbingture 2013-06-22
  • 打赏
  • 举报
回复
你看我的c++的代码。即使我设置成5秒(5000),只要我把退出信号量设置成通知状态。立刻就退出了。我总不能写 sleep(5000)吧
hanbingture 2013-06-22
  • 打赏
  • 举报
回复
这样不行。这样如果我退出程序时会有100毫秒的延时
本拉灯 2013-06-22
  • 打赏
  • 举报
回复
While(true) { xxxxx Thread.Sleep(100); }

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧