2013-12-20 37 views
4

這是我第一次嘗試製作一個線程化的軟件。這將是基於Arch Linux的GTK2。GTK2:g_thread_init已棄用

我跟着的例子在這裏:

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一樣活潑,因此爲什麼我想要在高優先級線程中運行圖形和用戶輸入內容。

如果任何人都可以指出我對這種類型的東西正確的方向,這將不勝感激。如有必要,任何一篇在線文獻都可以幫助讀者理解這方面的書籍。

在此先感謝。

+1

你知道它被替換了嗎? –

+0

@FiddlingBits不,似乎無法找到任何有關它。看起來glib只是根據我的理解自動處理那部分內容,但由於我不確定,所以我寧願問一些在這個部門有經驗的專業人員。 – ReX357

+1

我會建議使用GTK3 .... –

回答

5

據:

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

g_thread_init已經從2.32版本棄用,不應該在新編寫的代碼中使用。這個功能不再需要。 GLib線程系統在程序開始時自動初始化。

功能的原型如下:

由於2.32版本,GLib的不支持自定義線程實現了和vtable

void g_thread_init (gpointer vtable); 

這在上述鏈接中也提到參數被忽略,你應該通過NULL

奇怪的是,在一個聲明中他們說你不應該使用它,然後在另一個說如果你使用它,傳遞NULL作爲它的參數。無論哪種方式,如果你使用Glib> = 2.32,調用它就不再需要了。

+0

那麼這意味着取出線,保持其餘的一樣?就像Gtk默認線程一樣? – ReX357

+0

這是要求你。你不能傳遞它的參數。 –