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
@httpinterpret это зависит от особенностей того, что вы делаете; вы должны быть очень осторожны, чтобы не оставлять вещи в противоречивом состоянии. GThreadPool или переменные условия могут быть тем, что вы ищете. Возможно, вы захотите немного подробно рассказать о том, что вы пытаетесь использовать многопоточность, поэтому мы можем подумать об этом. – WhirlWind
Моя опубликованная демо - это именно то, что я делаю. – httpinterpret