最近在项目中遇到了这样的问题:
程序的结构:主线程用于界面控制,线程1用于生成显示内容,线程2用于精确控制在正确的时刻控制界面显示生成的内容。
实现方式:在线程2中直接调用显示控件的update()方法,让主线程重绘。
运行效果:运行开始后的一段时间能够正常工作,但是几个小时后,会出现调用update()方法不能让控件重绘,显示控件一直显示旧的内容。但是可以通过缩放界面窗口等方法,让窗口自己重绘,能显示出新的内容。
解决办法:不在其他线程调用update(),而是在主线程中调用update(),目前修改后的程序已经连续运行了20小时,未卡死,已经满足了项目需求。