У меня есть библиотека, которая только предоставляет функцию блокировки чтения потоковых данных.Теперь мне нужно прочитать данные и показать в GTK3 GUI.Поэтому я использовал канал транзакции для передачи данных из потока, выполняющего чтение, в поток GUI, а затем считал переменную через g_idle_add.Видимо, это неправильно.Приложение вызвало занятость процессора.Как правильно?
Псудо-код:
idleAdd PRIORITY_DEFAULT_IDLE $ do
readTChan chan >>= \case
Nothing -> return SOURCE_CONTINUE
Just data -> show_data_in_textview data
forkIO $ loop $ do
theRead >>= writeTChan chan