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 会把程序在循环过程时导致其他界面出现短暂无响应,求高手指教?
前者线程内cpu无消耗,后者线程内cpu如楼上所言——满载的执行判断指令;前者是基于系统cpu管理的,硬件给予支持;后者是前者之内的事情。
感谢
你第二种会导致那个线程的cpu在那1s内满载,第一种只要不是在ui线程中就可以。