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

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 会把程序在循环过程时导致其他界面出现短暂无响应,求高手指教?


人到中年有点甜
浏览 1202回答 1
1回答

跃然一笑

前者线程内cpu无消耗,后者线程内cpu如楼上所言——满载的执行判断指令;前者是基于系统cpu管理的,硬件给予支持;后者是前者之内的事情。
打开App,查看更多内容
随时随地看视频慕课网APP