求C# 不卡死,不耗CPU 的延时命令。

tenxp 2011-11-01 05:27:46
测试了2种

一种是 Thread.Sleep(10000); 问题是 运行的时候进程无响应,
第二种用了一个循环
public static void WaitFor(int ms) // 等待
{
DateTime now = DateTime.Now;
while (true)
{
Application.DoEvents();
TimeSpan span = (TimeSpan)(DateTime.Now - now);
if (span.TotalMilliseconds > ms)
{
return;
}
}

这样的 问题 是 ~ 运行的时候 CPU 始终会占用50% ~~


有没比较完美 方法! 不会造成程序卡死~ 也不耗CPU 的方法???
...全文
646 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
卧_槽 2011-11-01
  • 打赏
  • 举报
回复
直接用timer不就完了么。
风骑士之怒 2011-11-01
  • 打赏
  • 举报
回复
gui线程都sleep了,你还打算他响应什么
Flashcom 2011-11-01
  • 打赏
  • 举报
回复
我看你还是用Timer控件比较好些,这个也方便,你用线程你还会上来再问问题的
tenxp 2011-11-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 karascanvas 的回复:]

Thread.Sleep还是可以的,不过你得另外启动一个线程来进行延迟处理。
[/Quote]
怎么创建其他线程? 我菜鸟 不懂给断代码研究下 !谢谢~
Flashcom 2011-11-01
  • 打赏
  • 举报
回复
创建其它线程,可以用Thread.Sleep,或者用timer
种草德鲁伊 2011-11-01
  • 打赏
  • 举报
回复
定时工作应该用Timer
种草德鲁伊 2011-11-01
  • 打赏
  • 举报
回复
Thread.Sleep还是可以的,不过你得另外启动一个线程来进行延迟处理。

111,071

社区成员

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

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

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