gpt4 book ai didi

c++ - 如何等待 Glib::Dispatcher 的连接函数完成?

转载 作者:太空宇宙 更新时间:2023-11-04 13:12:15 25 4
gpt4 key购买 nike

我目前正在使用 Gtk 进行多线程处理,因为我想异步更新 Gtk::TreeView 中的行,这样用户就不必等待该函数更新它们直到他可以使用该程序,它只会在后台执行。

所以我正在使用 Glib::Thread 来运行我的收集数据的更新函数,并且我已经将一个函数连接到 Glib::Dispatcher,即然后将更新实际 View 。

当我从我的线程数据收集器调用 Glib::Dispatcher 时,它工作正常,在它完成收集东西之后,但是如果我每次它完成收集一行数据时调用它,并且让 Glib::Dispatcher 的连接函数只更新这一行,它会导致非常奇怪的结果,我认为这是因为如果我调用 my_dispatcher()从线程中,它正在异步运行连接的函数并且不等待它完成。

有什么方法可以告诉在单独线程中运行的函数,它应该等待 Glib::Dispatcher 的连接函数完成(比如使用 join),但不阻塞我的主线程,以便只有另一个线程等待它?

最佳答案

我想我终于偶然发现了这个问题的答案。我正在使用 std::condition_variable 来阻止线程之间的执行和通信。似乎运作良好 - 我希望它保持这样 :D

关于c++ - 如何等待 Glib::Dispatcher 的连接函数完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39312702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com