LINUX.ORG.RU

Посылка сообщений


0

0

Здравствуйте!

У меня такой вопрос: под Виндой я довольно широко использую посылку сообщений окну. Например из потока, который читает и анализирует данные поступающие по последовательному порту, послать уведомление окну вывести данные в окно. Или там в индикаторе показать процент прочитанных данных. Так вот, как под XWindow организуется посылка сообщений? Зависит ли это от используемой библиотеки(FLTK, FOX, GTK+)? Моржет есть какие-то способы заменить послылку сообщений? Может для этого использовать сигналы? Но ведь пользовательских сигналов, насколько мне известно, всего два: SIGUSR1 и SIGUSR2.

Заранее благодарю.

★★

Re: Посылка сообщений

pthread_mutex_t lockx = PTHREAD_MUTEX_INITIALIZER; pthread_cond_t condx = PTHREAD_COND_INITIALIZER;

void* Handler(void* ptr) { for(;;) { pthread_mutex_lock(&lockx); ******* pthread_cond_signal(&condx); pthread_mutex_unlock(&lockx); }

return NULL; }

void* Window(void* ptr) { for(;;) { pthread_mutex_lock(&lockx); ******* pthread_cond_wait(&condx, &lockx); pthread_mutex_unlock(&lockx); }

return NULL; }

main() { pthread_t a_thread; if( pthread_create(&a_thread, 0, Handler, NULL) == 0 ) pthread_detach(a_thread);

pthread_t b_thread; if( pthread_create(&b_thread, 0, Window, NULL) == 0 ) pthread_detach(b_thread);

sleep(infinity); }

anonymous ()

Re: Посылка сообщений

А как ты под виндой посылаешь сообшения?

anonymous ()

Re: Посылка сообщений

void PostMessage( HWND hWnd, Message msg, WPARAM w, LPARAM l ); void SendMessage( HWND hWnd, Message msg, WPARAM w, LPARAM l );

Вот так и посылаю :-)

Сообщение определяю своё : #define WM_DATA_RECEIVED (WM_USER + 7)

kkk ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.