2014.10.6

来源:互联网 发布:js判断数字是否为整数 编辑:程序博客网 时间:2024/05/28 05:13

每天进步一点点!

关于MFC中线程的问题,这里首先链接一个网址,其中讲述了线程中CreateEvent和SetEvent及WaitForSingleObject的用法

http://chinaxyw.iteye.com/blog/548622


下面自己总结一下,其中讲述的内容,方便自己理解:
CreateEvent:创建或打开一个命名的或无名的事件对象。EVENT有两种状态:发信号,不发信号。

SetEvent/ResetEvent分别将EVENT置为这两种状态分别是发信号与不发信号。

当你创建一个线程时,其实那个线程是一个循环,不是只运行一次的,那如果这样,这个死循环里要找到合适的条件退出那个死循环,怎样实现呢?

在Windows里往往采用事件的方式(也还有别的方式),原理是这样的,在那个死循环里不断地使用WaitForSingleObject函数来检查事件是否满足,满足就退出线程,不满足就继续运行。


今天总算搞清楚师兄程序的结构了,首先说说串口接收数据的形式。

最开始通过建立各种类的对象,将串口的初始化直接做好了,接下来,在按键控制函数中,发送读写指令。

读线程在最开始的初始化时候已经做好了,所以读操作位多线程操作,在读的过程中,读指令ReadFile函数要读写69000个数据,其实相机发送的数据并没有这么多,这么操作知识为了可以将所有的数据读出来,儿实际读写的数据个数将放在参数dwLength中(PSerialPort,cpp),并将该参数最终传递给参数length,表示实际读到的数据长度。

最后根据读到的数据长度,判断本次读到的数据是与哪个指令相配的,并最后做不同的处理。


0 0
原创粉丝点击