gpt4 book ai didi

c - gtk/c 在线程中操作 GUI : strange errors

转载 作者:行者123 更新时间:2023-11-30 15:56:10 25 4
gpt4 key购买 nike

我使用udp编写了一个C/S应用程序,但它总是给我错误,我认为这与我使用线程的方式有关。

客户端程序启动时,首先初始化一个登录窗口,并启动一个新线程来监听服务器的响应。提交用户名和密码后,新线程将收到一条消息,指示其是否提交了正确的信息。如果是这样,那么该线程将初始化主 GUI 窗口。但它会给出奇怪的错误:

Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0

python: Fatal IO error 0 (Success) on X server :0.0

我发现了类似的问题here ,但还没有解决。

有人说 GUI 只能在主线程中操作,但其他人说这不是真的。

我还尝试在 gtk_main() 周围使用 gdk_threads_enter()gdk_threads_enter() 以及我在该监听线程中初始化窗口的代码。但似乎没有效果。

我对线程了解不多,所以请耐心指出我做错的地方。

谢谢。

最佳答案

我发现,当您没有正确持有 GTK 锁时,这些错误消息会不时弹出。

您应该将 gdk_threads_enter()gdk_threads_leave() 放在原始 gtk_main() 调用周围,并且 围绕每次发生的 GTK 函数调用

  • 在调用 gtk_main() 的线程之外
  • 但不在信号、空闲或超时处理程序中。

据我了解,这种用法正在逐渐消失,并且在 GTK 的 future 版本中,只能从主线程操作 GTK。

关于c - gtk/c 在线程中操作 GUI : strange errors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11453733/

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