Как я могу интегрировать код в основной цикл GTK?
У меня есть рабочий код без графического интерфейса, который управляет некоторыми потоками. Теперь я хочу интегрировать его с GUI, созданным в GTK. Он строит графический интерфейс с test_glade
который использует gtk::main
:
fn main() {
//..
test_glade();
//..
// Question about this
while estado < 4 {
if *count.lock().unwrap() == arc_pref.cantidad {
estado = 3;
}else if estado == 2{
estado = 1;
}else if estado == 1{
estado = 2;
}else if *count.lock().unwrap() == 0 && estado == 3{
estado = 1;
}
//..
estados(count.clone(), arc_pref.clone(), estado).join();
}
}
fn test_glade(){
gtk::init();
//..
window.show_all();
gtk::main();//main loop gtk
}
//..
Посмотрев, я вижу, что это основной цикл, поэтому мой код не запускается.
//..
test_glade();
//..
// Question about this
while estado < 4 {
//..
estados(count.clone(), arc_pref.clone(), estado).join();
}
Как я могу интегрировать мой код, который использует некоторые потоки, в основной цикл GTK?
На данный момент я создал новый поток, и я поместил код внутри потока, и он, кажется, работает:
fn test_glade(){
gtk::init();
//..
thread::spawn(move|| {
//code Question
});
//..
window.show_all();
gtk::main();//main loop gtk
}
//..