ontimer 与多线程

Posted mitutao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ontimer 与多线程相关的知识,希望对你有一定的参考价值。

一般来说,在MFC中开启一个UI线程可以用以下代码:

m_pCameraThread = AfxBeginThread(RUNTIME_CLASS(CCameraThread));
if (!m_pCameraThread->PostThreadMessage(UM_VERIFY_AVAILABILITY, NULL, NULL))
{
    Sleep(10);
}

但是,在ontimer的一个case中,不能同时顺序启动两个上述UI线程,建议启动不同的UI线程放在不同的case中顺序执行,否则在debug下会出现***.exe 中的 0x***** 处最可能的异常: 0xC0000005: 读取位置 0x******时发生访问冲突.而release下则不会出现。这种冲突根本不是通过常规的指针越界引起的,该debug非常难以调试。出现上述错误的原因,可能是ontimer函数本身就不是多线程的!

 

以上是关于ontimer 与多线程的主要内容,如果未能解决你的问题,请参考以下文章

是否需要锁定阅读对象?

C中的多线程与多处理

mfc 线程里设置定时器settimer,但是执行不道OnTimer里

多线程与多进程

多线程与多进程的实现

并发与多线程