【发布时间】:2013-05-19 17:42:16
【问题描述】:
这个问题是关于System.Threading.Thread.Sleep(int)。我知道没有十进制值的方法,但我确实需要使用小数。
我有一个设备需要 20.37 毫秒才能转动 1 度。所以,我需要让代码休眠以适当乘以 20.37(2 度 = 20.37*2 等)。由于线程类没有十进制睡眠方法,我该怎么做?
【问题讨论】:
-
Thread.Sleep() 只保证睡眠 至少 毫秒数,这意味着您可以请求 20 毫秒,也可以在线程重新启动之前以 800 毫秒结束.如果您想要实时,该 API 可能不适合您。
-
您的设备 API 是否提供任何通知,例如
OnTurned? -
你为什么需要它那么准确?
-
@newStackExchangeInstance:您好,系统是一个高度关键系统的模块:)
-
@Knight 你确定驱动程序没有 API 可以让设备自己处理时间吗?即使您使用 C++ 进行本机编码,我也看不到任何方法可以保证用户空间接近微秒级的精度。
标签: c# .net multithreading visual-studio-2010 decimal