C# 延时函数 非Sleep
来源:互联网 发布:mysql大于符号 编辑:程序博客网 时间:2024/06/05 05:45
在很多时候,我们的程序,在执行下一步操作之前,需要等待上一步的执行完成,这种延时等待的方式在异步操作,或者是利用消息循环机制通信的程序中,最为体现的明显。
举个API的例子:
我们自己的程序是A,需要利用API结合Windows 消息机制,控制外部程序B;
A向B发送一个消息,B去执行,此时A需要等待B执行完后,根据B的执行结果,再次向B发送下一个消息
上面的例子,是个很典型的延时应用。
说到延时,大家可能第一反应,就是 Sleep 。
先不谈 Sleep 延时的精度如何,Sleep 的一个致命的弱点,就是 Sleep 的过程中,进程是不能响应外部操作的,变成了假死状态,这样的话,一个是用户体验很差,再者,用户想中途终止也不行,只能干等,或者强制 KILL 掉程序。
所以,此时的Sleep是不可取的。 我们需要的,是一个可以继续响应操作,而且精度高的延时函数。
下面,我们自己实现一个:
using System.Runtime.InteropServices;
[DllImport("kernel32.dll")]static extern uint GetTickCount();
static void Delay(uint ms) { uint start = GetTickCount(); while (GetTickCount() - start < ms) { Application.DoEvents(); }}
- C# 延时函数 非Sleep
- C#延时函数 非Sleep
- C#延时函数 非Sleep
- QT延时函数sleep
- boost延时函数sleep
- Ring0中的Sleep延时函数
- Qt自定义sleep延时函数
- VB中延时功能与Sleep函数
- Linux Shell中的延时函数 sleep
- Linux Shell中的延时函数 sleep
- 延时函数sleep和delay的区别
- C# 延时函数
- C#中的延时函数积累
- 延时函数delay与sleep有什么区别呢?
- C语言等待一秒,延时函数sleep()
- 51单片机非精确延时函数
- 编程笔记 非阻塞式延时函数
- python 延时sleep
- Connected Components Labeling
- jffs2_scan_inode_node(): Data CRC failed on node at ... Read ... calculated ...
- Windows 8关键里程碑
- 告诉你一个真实的中国互联网:精英与草根
- wxpython skin bug(弹出菜单,内存错误)
- C# 延时函数 非Sleep
- Hough Transform
- wince U盘驱动的增加
- Thickening
- WINCE下内核模式和用户模式的区别
- java基本的名字术语:java源文件,java字节码文件,JDK,JRE,JVM
- Hit-and-Miss Transform
- Adaptive Thresholding
- 浅谈千万级PV/IP规模高性能高并发网站架构