c - GTK3.0 GUI 在使用 "g_spawn_async_with_pipes()"时卡住

标签 c user-interface asynchronous gtk freeze

我在 Linux 的 GTK3.0/C 中为 ffmpeg(转换内容:视频 -> mp3)编写了一个非常简单的前端。为了生成 ffmpeg,我使用 g_spawn_async_with_pipes()。我认为这是在不让 GUI 卡住的情况下执行此类操作的正确方法 - 但事实确实如此。那么 - 我怎样才能防止它结冰 - 这样我就可以 f.e.显示微调器?

最佳答案

您可能需要添加类似“”的内容

    while (gtk_events_pending ()) {
      gtk_main_iteration_do (FALSE);
}

即让 GTK 处理待处理的事件(如绘制 UI)。 我想您正在使用 g_io_add_watch 处理 ffmpeg 的输出 或类似的。

关于c - GTK3.0 GUI 在使用 "g_spawn_async_with_pipes()"时卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6800270/

相关文章:

debugging - 跳到非黑盒文件中的下一个异常点

C#异步: How does a thread remember its local variables?

c - 双链表中在末尾插入一个节点并在开头删除一个节点

c - 使用 L-System 优化 GNU 解析器

windows-10 - 无法在 IntelliJ IDEA 中找到或加载主类来制作 Javafx jar

java - 实用的 GUI 工具包?

c - C 右移

c++ - 谁能告诉我Windows API方法SendMessage的最后一个参数代表什么?

java - 安卓 : Add text to create a list with image at the top.

javascript nodejs if语句以意外顺序调用