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