在VC++下,实现PC与另一外设之间的单线程通信.如果想在程序运行中设置时间等待,看外设是否有消息响应.则如何设置.如果用sleep(),将线程挂起一段时间,则若设置时间过长比如说6秒,则PC机看来则处于假死机状态.有没有办法使PC端看起来运行正常,而外设一端继续处理.直到那段设置的响应时间到.请问如何实现.谢谢
请问,在VC++下线程问题,请教如何实现
在VC++下,实现PC与另一外设之间的单线程通信.如果想在程序运行中设置时间等待,看外设是否有消息响应.则如何设置.如果用sleep(),将线程挂起一段时间,则若设置时间过长比如说6秒,则PC机看来则处于假死机状态.有没有办法使PC端看起来运行正常,而外设一端继续处理.直到那段设置的响应时间到.请问如何实现.谢谢
晕,你查msdn有例子的,简单来讲,就是定义一个线程执行函数,这个函数中执行你要执行的代码,函数执行完线程就自动释放,如果中途要结束线程的话就调用_endthread
void WorldThread(void * pvoid) //pvoid就是调用_beginthread时输入的某个结构的指针
{
......
if (想要结束)
_endthread
......
}
然后在主线程调用_beginthread(WorldThread, 0, (void *)(某个数据结构的指针));就行了
具体你看msdn吧
我是菜鸟,还是没看明白.兄弟能不能写出来让我看下,应该不大的吧,程序.我主要是不大明白.
//主函数
{....
sleep(5500);//挂起PC与外设通信线程
_beginthread(参数不明白);
}
我还是对那个人的意图不是很明白,电脑会处于假死机状态吗?PC机运行的时候难道不是多线程运行的吗?当PC与外设通信这个线程挂起,其他PC上的线程还可以运行的啊.怎么PC机器会处于假死机状态呢
我是想在程序中设置一个时间等待,看操作处理是不是超时了.
还有,我对要求我改这程序的人意图还不是很明白.我在程序中用的是sleep(6000)这一函数.但他说等待时间过长会时PC机处于假死机状态.我想问下,PC机不是多线程运行的吗?当他与外设通信这一线程功过sleep()挂起来后,其他线程不是照样可以运行的吗?怎么会假死机状态.另外,他说是单线程.我不知道他说的单线程是什么意思?
有高手的,请指点一下,谢谢.
小弟菜鸟的很!