初学C++编程,经常会利用easyX库作图或显示图像。有时希望在窗口的不同位置显示不同的画面并希望有不同的动画效果、或同时在特定位置捕捉鼠标信息。在这种情况下,我们在不同的函数中会设定不同的Sleep()值,为此会用到thread类创建多线程。
利用thread类可以将不同的函数设置为不同的线程,相互之间在Sleep()值设置方面没有影响,动图效果较好,也不会影响鼠标操作。
但在实际编程中,各个线程在执行时是一个线程一个语句轮流执行的,而不是一个函数执行完了再执行另一个函数。这样有时a函数中的设置在a函数中还未出现结果,却在b函数语句中得到执行,使得动图画面十分混乱。
怎样避免这种出现这种情况呢?
a.可能影响到整个窗口的设置应仔细考虑,要选择恰当位置。如cleardevice(),setbkcolor()等语句。
b.尽量不使用 setaspectratio()改变坐标方向,尽量不使用setorigin()重置坐标原点,或者只设置一次。在各线程的函数中不重新设置。
c.画面中固定显示的图片、提示文字等尽量放到一个函数中执行。
本人初学咋练,以上是想到的一些初步的解决方法。可能还有更好的方法,还请多多给与指点,感谢!
利用easyX库和thread类做动图注意事项
最新推荐文章于 2023-10-29 14:08:12 发布