2
void forloop2()
{
int i = 0;
while(TRUE)
{
printf("forloop2\n");
}
}
int main() {
GThread *Thread1;
GtkWidget *window;
g_thread_init(NULL);
gdk_threads_init();
gdk_threads_enter();
Thread1 = g_thread_create((GThreadFunc)forloop2, NULL, TRUE, NULL);
gtk_init(NULL, NULL);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show_all (window);
gtk_main();
g_thread_join(Thread1);
gdk_threads_leave();
}
当我关闭窗口时,如何让Thread1
也退出?当主线程退出时,如何让子线程退出?
当主线程退出时,是否可以创建一些会自动退出的守护线程? – httpinterpret 2010-05-09 13:35:36
@httpinterpret它取决于你在做什么的细节;你必须非常小心,不要让事情处于不一致的状态。 GThreadPool或条件变量可能是你正在寻找的。您可能希望对您想要多线程的内容进行一些高级细节,所以我们可以考虑一下。 – WhirlWind 2010-05-09 13:46:06
我发布的演示正是我正在做的。 – httpinterpret 2010-05-09 13:53:33