我有一个程序(用C语言编写,目前在MacOSX10.8.4上运行),它模拟一个世界,每秒多次更新世界的状态。
在启动时,该程序创建一个后台线程,该线程创建一个简单的GTK窗口并调用gtk_main。
每次更新世界状态(在主线程中)后,我希望窗口能够反映这种变化。我的第一种方法是在世界更新之后简单地更新GTK小部件,但因为这是在不同的线程中,所以事情变得非常混乱。
是否存在某种机制,其中主线程可以更新图形线程上的某个状态,然后将提示图形线程重新绘制的事件排入队列?也就是说。
void draw() {
// This can only be called from the graphic