其他分享
首页 > 其他分享> > GTK2:g_thread_init已弃用

GTK2:g_thread_init已弃用

作者:互联网

这是我第一次尝试制作一个线程软件.它将是基于Arch Linux的GTK2.

我按照这里的例子:

Threaded animation with Cairo

使用底部的SIGALRM示例.

编译时收到以下警告:

warning: 'g_thread_init' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:260) [-Wdeprecated-declarations]
if (!g_thread_supported ()){ g_thread_init(NULL); }

我正试图找到关于我应该怎么做的信息.网上出现此警告的唯一事情是软件在编译时抛出相同错误的错误报告.很多报告看起来像他们说只是删除线.

我是否只删除该线并保持其余部分完好无损?或者有更好的方法来解决这个问题吗?

我正在使用触摸屏在Raspberry Pi Model B上运行信息娱乐系统,我想确保它像iPhone一样快感,因此我想在高优先级线程中运行图形和用户输入内容.

如果有人能指出我正确的方向这种类型的东西,将不胜感激.如有必要,任何在线文学作品都会有所帮助.

提前致谢.

解决方法:

根据:

https://developer.gnome.org/glib/2.34/glib-Deprecated-Thread-APIs.html#g-thread-init

g_thread_init has been deprecated since version 2.32 and should not be used in newly-written code. This function is no longer necessary. The GLib threading system is automatically initialized at the start of your program.

函数原型如下:

void g_thread_init (gpointer vtable);

在上面的链接中也提到了这一点:

Since version 2.32, GLib does not support custom thread implementations anymore and the vtable parameter is ignored and you should pass NULL.

奇怪的是,在一个声明中他们说你不应该使用它然后在另一个声明中说如果你使用它,则传递NULL作为它的参数.无论哪种方式,如果您使用Glib> = 2.32,则不再需要调用它.

标签:c-3,linux,multithreading,gtk,gtk2
来源: https://codeday.me/bug/20190529/1175617.html