想问问:俩个线程间读取数据一般需要数据保护,比如互斥,临界资源等。但是我在OnPaint中也定时的去取数据,然后显示,但不需要数据保护。这是为什么?还是我压根就是理解错了?谢了!

解决方案 »

  1.   

    没理解,你标题上说“为什么要数据保护”,可是你在内容里又说“不需要数据保护”。
    OnPaint是WM_PAINT的消息处理函数,只要没有多线程读写数据就不需要同步数据。
      

  2.   

    但是我在OnPaint中也定时的去取数据,然后显示??
    楼主是不是写错了,是OnTimer吧
      

  3.   

    标题写错了,打个比方:俩个线程,1个线程是读串口数据,可以读到当前时间,第二个线程是将这个时间写到txt文件中,这样是需要对这个数据保护,就是在读的时候不让写,写的时候不让读。另外还有一个OnPaint,我用了一个定时器来刷新显示内容,这我有疑惑了,OnPaint中显示时间的数据时从第一个线程中取的,那么为什么不需要这么做:我在显示完事之后在让去读,而我什么都没做,就能实时的得到?