У меня есть входящий поток сообщений, и я хочу окно, которое позволяет пользователю прокручивать сообщения. < /p>
Это мое текущее мышление: < /p>
[*] Входящие сообщения заходят в однородную очередь одного потребителя < /li>
Поток считывает их и помещает их в круглый буфер с последовательным id < /li>
Таким образом, я мог бы иметь несколько входящих потоков, безопасно размещенных в круговом буфере, и он разместит вход < /li>
Mutex для координации круглого буфера между UI и поток
[*] Два уведомления от потока до UI One для первого идентификатора и одно для последнего идентификатора в буфере, когда они либо меняются.
Это позволяет пользовательскому интерфейсу выяснить, что он может отобразить, какие части круглого буфера он нуждается в доступе, удаляет перезаписанные сообщения. Он доступ к сообщениям, необходимым для заполнения окна в его текущем размере и положении прокрутки. UI. Он будет генерироваться с высокой частотой. Они могут быть в очереди или иным образом дроссель; Задержка не должна влиять на первый идентификатор, но задержки при обработке последнего идентификатора могут вызвать проблемы в угловых случаях, таких как просмотр самого конца полного буфера , если пользовательский интерфейс не сделает копию отображающих сообщений, которые отображаются, которые отображают, что Я хотел бы избежать. < /P>
Это звучит как правильный подход? Какие -то изменения, которые могут сделать его немного более вкусным?
Подробнее здесь: https://stackoverflow.com/questions/160 ... -real-time
Просмотр данных в круговом буфере в режиме реального времени ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как реализовать указатель приема данных в буфере и сохранить его как пустой указатель?
Anonymous » » в форуме C++ - 0 Ответы
- 41 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Данные не вставляются в атмосферу базы данных Firebase в режиме реального времени.
Anonymous » » в форуме JAVA - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-