【问题标题】:Should I be using GTK threads/Good tutorials on GTK threading? [closed]我应该使用 GTK 线程/关于 GTK 线程的好教程吗? [关闭]
【发布时间】:2013-08-14 15:32:47
【问题描述】:

这是我目前的情况:

我正在尝试使用 C 语言中的 GTK 构建一个 GUI。GUI 中间将是一个显示视频输入的屏幕。视频输入窗口是一个 XLIB 窗口,我(目前尝试尝试失败)将其包装在 GTK 小部件中。然而,它周围将是按钮等。与视频交互或根据视频输出做事。

我想知道这是否是使用线程的正确时间,因为我希望在显示视频输入/处理的同时运行我的 GTK GUI。如果有什么好的指南,如果没有,您会推荐什么?

从@bash.d 的 cmets 我应该使用线程,有没有人知道任何好的链接或我应该在手册页中查看的位置,因为我似乎越来越困惑并且遇到了已弃用的功能。

【问题讨论】:

  • 当您希望您的 UI 保持响应时,您根本无法绕过线程...也可以使用 pthreads。但我读到这会导致冲突,你应该使用GTK 线程。
  • @bash.d 谢谢你还知道 C 中 GTK 线程的任何好的链接吗?
  • official documentation 应该会给你很多想法,我希望。
  • 如果您打算将媒体添加到您的应用程序并计划使用 Gtk+,我必须建议您使用 [Gstreamer][1]。最好让自己保持在循环中。使用兼容工具包,你的编码会很容易。此外,您最好避免在 Gtk+ 之外完全使用线程,更好地使用 GLib 对异步操作的支持。 [1]:gstreamer.freedesktop.org

标签: c multithreading user-interface gtk xlib


【解决方案1】:

如果您这样做的唯一原因是保持 UI 响应,我会劝阻您不要使用线程。相反,您应该调用

while (gtk_events_pending())
    gtk_main_iteration();

在视频处理过程中的某些时间点。

【讨论】:

    【解决方案2】:

    我认为线程是正确的方法。这是一个很好的教程multi-threaded gtk+ application

    【讨论】:

    • 实际上,这已经不是正确的做法了。它已被贬低。
    猜你喜欢
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 2010-09-21
    相关资源
    最近更新 更多