1、线程采集完数据,并处理后,如何通知视进行显示?用消息还是其它?除了消息还有没有更好的方法?
2、线程与显示是否同步?若只在线程中加锁,显示时不加锁行吗?

解决方案 »

  1.   

    视窗如果是DLG,可以再启动线程时,将对话框句柄传入,采集数据完成后直接通过句柄显示在对话框上。
      

  2.   

    显示一般都是在主线程的,所以显示的话,最好用消息了,用自定义消息,如果是工作线程,就用PostThreadMessage了。当然,工作线程的话,用WaitForSingleObject也不错,随便用了,看程序逻辑了。
      

  3.   

    创建线程的时候,将视图View的窗口句柄HWND作为线程函数的参数传递给线程。
      

  4.   

    又或者直接传this指针进去,然后显示在VIEW窗口
      

  5.   

    楼主可以看看这份源代码《解决了关闭死锁的CSerialPort类项目》,有无数的测试设备的上位机用过这个了。开启一个线程采集数据,不停地实时把采集到的数据交给主线程。要是看不懂的话,给留言好了。