我的程序要解决的问题是:用按钮消息事件来启动一个数据采集的线程,就是从数采卡获得数据,数据采集的线程是每个2ms获得一个数据,当有数据获得时,启动画曲线的线程在视图上画一个点。也就是说采到一个数据,启动画曲线线程画点。
当我如此做时,却出现内存资源消耗太多,我怀疑是否是要在画完一个点后,要结束画曲线线程?如何解决这个问题?谢谢!
当我如此做时,却出现内存资源消耗太多,我怀疑是否是要在画完一个点后,要结束画曲线线程?如何解决这个问题?谢谢!
调试欢乐多
CDC *pDC = pWnd->GetDC();
ASSERT_VALID(pDC);
.......
pWnd->Release(pDC);没有清除GDI对象,看是否没有调用了GID对象的DeleteObject()来清除!!!
我以前也遇到过同样的问题!!!
意思就是说你的后台的线程只管判断有没有数据到来,有的话PostMessage
然后在消息处理里面去绘图,这样可能比较好些,我就是这么做的
线程不结束,每画一个点后如果没有消息在排队就挂起(suspend)自已。线程的GDI对象也不用释放了。每采集到数据就发自定消息,响应自定义消息的函数负责唤醒线程。另外,问一下你采集信号的过程是否占用100%CPU ?
有没有相应的代码?
线程用来收集数据.收到数据后可以用sendmessage()或PostMessage(),在这个消息处理函数中画线.
开两个线程必须考虑到同步.