为了账号安全,请及时绑定邮箱和手机立即绑定

C#中使用Thread.sleep(1000)与 while 循环暂停1s 有何区别和优缺点

C#中使用Thread.sleep(1000)与 while 循环暂停1s 有何区别和优缺点

C#
人到中年有点甜 2018-07-18 11:14:04
Hi All,如题如果在一个Winform程序里面,由于需要更新一个全局变量,需要暂停1s,现在有两种方法可以实现:1. Thread.Sleep(1000);  // update Global Var 2.DateTime dt = DateTime.Now.Add(1);while(DateTime.Now.Compare(dt) < 0){  // update Global Var }现在问题是哪种方法更好更安全的得到我想要的全局变量? 因为我的程序还有其他线程在跑,所以我怕Thread.Sleep()会导致其他线程有问题,但是使用While 会把程序在循环过程时导致其他界面出现短暂无响应,求高手指教?
查看完整描述

1 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

前者线程内cpu无消耗,后者线程内cpu如楼上所言——满载的执行判断指令;前者是基于系统cpu管理的,硬件给予支持;后者是前者之内的事情。


查看完整回答
反对 回复 2018-08-13
  • 1 回答
  • 0 关注
  • 1200 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信