我在看我的同事写的代码:是否有更好的方法来计算时间的流逝没有把线程睡眠
long tim = DateTime.Now.Ticks;// get current time in ticks
long startWait = tim + TimeSpan.TicksPerSecond * 15; // add 15 seconds (in ticks) to current time
while ((tim < startWait) & !_myReader.ReaderOpen) //_myReader.ReaderOpen is external device
{
Thread.Sleep(100); // sleep for 100ms
tim = DateTime.Now.Ticks;
}
出于某种原因,这个代码不看的权利。看起来像把线程挂起并每100ms唤醒一次就是CPU的巨大浪费。
主题。睡眠不应该使用CPU。 – Fredou 2014-10-06 18:32:33
只需检查开始行动的时间以及结束行动的时间并确定差异? – KSdev 2014-10-06 18:34:29
@KSdev他不知道要等多久,直到读者打开。 – Servy 2014-10-06 18:38:30