Chinaunix

标题: C中关于PostThreadMessage调用的问题 [打印本页]

作者: lxk899    时间: 2012-07-25 13:52
标题: C中关于PostThreadMessage调用的问题
各位大虾,请教一个关于在纯C代码调用PostThreadMessage的问题:
    我们的代码是一个多线程的进程,各个线程之间利用PostThreadMessage发送消息,利用GetMessage接收本线程的消息;理论调用PostThreadMessage会把消息放到指定的消息队列中,不管对方是否接收就会立刻返回;但是现在出现了这样一个问题,从调用PostThreadMessage开始到返回经常会卡30ms左右,而且有时候会卡250ms。我们的代码是在英文系统XP中运行的,后来增大注册表中的线程队列中最大消息个数的值,发现卡250ms的概率降低了;原来是每次运行代码都会出现几次卡250ms,现在运行代码10次,只有1-2次中出现卡250ms的现象。而且后来我们发现代码在中文系统中从来没有出现卡250ms的现象。
    请问一下,怎样解决这种调用PostThreadMessage卡30-250ms的现象;是不是和系统中进程和线程的环境有关,该怎么设置这些环境。请教了....
作者: hellioncu    时间: 2012-07-25 14:02
我想可能是消息队列满了,PostThreadMessage等消息队列有空
作者: lxk899    时间: 2012-07-25 15:53
2#的回答我们也考虑了,应该不是这个,应为卡时间时,我们统计PostThreadMessage调用的次数和GetMessage的次数差不多,而且每个消息长度不是很大。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2