求助:c#下用timeSetEvent精确定时和timeSetEvent运行机制
求助:
我是这样的用的:
[DllImport("winmm.dll", EntryPoint = "timeSetEvent")]
public static extern int timeSetEvent(int uDelay, int uResolution, TimerCallback lp, Object dwUser, int uFlags);
int id1 = timeSetEvent(5,0,delay,0,0);
TimerCallback delay = new TimerCallback(this.nullHash);
public void nullHash(Object state)
{
MessageBox.Show("11111");
}
想要实现的目的是在5MS之后,执行一段代码.但是调试发现,没有执行那个回调函数delay();
对c#的委托理解不是很好,所以请各位能给个能用的例子,谢谢!!!
还有这个timeSetEvent是新建一个线程去执行回调函数吗?那是不是我的目的达不到? 就是当前线程不等待timeSetEvent的回调函数返回,就继续执行下去了吗?
要是不行的话,有什么方法能实现我的目的?
谢谢各位!!!
------解决方案--------------------http://www.knowsky.com/340309.html
------解决方案--------------------为什么不用Timer控件而选择API?
------解决方案--------------------
Window系列(NT或者以上),响应时间在ms级,甚至更慢。因为其不是实时操作系统,所以它的这些响应容易受到其他因素影响,比如系统繁忙程度,消息队列堵塞等.
楼主的 5MS之后,执行一段代码 的需求可能有些要求过高了.
因为根据测不准原则,你执行这段代码实际本身就影响了计时的准确性,而下一个定时周期又会继续影响,这样累积下来,偏差很大的
------解决方案--------------------六楼应提供一下代码,支持楼主