通常在使用GTK3回调和gtk_main()函数时,预计回调可能在程序主线程的单独线程中运行,因此需要采取线程安全措施来确保回调是线程安全的。
但是,如果你的主线程使用gtk_main_iteration手动处理gtk主事件怎么办?
// Some processing here
while (gtk_events_pending()) {
gtk_main_iteration();
}
// More processing here
在这种情况下,回调是否仍在单独的线程中运行?或者他们是从主线程发起的?
我的程序有很多工作,如果事实证明在此设置中从主线程调用回调,它将为我节省相当多的线程安全工作。
注意:我正在使用GTK3,但我相信这适用于GTK2和GTK3