本帖最后由 king1076 于 2013-11-28 12:30:18 编辑

解决方案 »

  1.   

    首先在C\C++中用 CreateThread 是错误的 应换成_beginthreadex其次 线程中不要直接操作UI线程的东西,win32界面相关的api不是线程安全的。应该用PostThreadMssage或者SendMessage之类的发消息通知UI线程的东西。
      

  2.   

    恩恩,我知道beginthreadex! 上面只是小程序。 好主意 下次注意
      

  3.   

    win32界面相关的api不是线程安全的。
    MFC的UI类,也因此不是线程安全的。MFC使用CreateThread 和_beginthreadex 同样是危险的。
    应该使用AfxBeginThread
      

  4.   

    不仅仅是QT,MFC也要求只能由一个主线程来操作窗口。
    把窗口指针传到新开的线程里,在线程里操作界面在MFC里也是不被允许的。
    如果非要这样做的话也不是说就一定会出问题,只是说可能出现问题。
    所以你写的那段MFC代码没有出问题,但在一个项目中大量这么用的话迟早要出问题。所以不管是QT还是MFC,一般的做法都是工作线程通知主线程,由主线程来操作窗口。
      

  5.   

       QT不清楚,mfc tls控制线程的运行和识别。
     
       你上面的过程应该封装在了线程状态中