Окну посылается много пользовательских сообщений, так что оно не успевает их все обрабатывать. При этом часть сообшений видимо не помещается в очередь и просто отбрасывается — окно их не получает.
Вопрос такой: что надо сделать, чтобы сообшения не терялись.
Функция SetMessageQueue(int) мне в этом не помогла.
Проблема существует только под Win9x.
Здравствуйте Mistery, Вы писали:
M>Проблема у меня такая...
Насколько я прав, я не уверен. Но я бы разгрузил основной поток задачи чтобы качать все сообщения, а для рутинной работы запускал дополнительный поток или потоки.
Здравствуйте Mistery, Вы писали:
M>Окну посылается много пользовательских сообщений, так что оно не успевает их все обрабатывать. При этом часть сообшений видимо не помещается в очередь и просто отбрасывается — окно их не получает.
Здравствуйте IT, Вы писали:
IT>Здравствуйте Mistery, Вы писали:
M>>Окну посылается много пользовательских сообщений, так что оно не успевает их все обрабатывать. При этом часть сообшений видимо не помещается в очередь и просто отбрасывается — окно их не получает.
IT>Может посылающему потоку стоит использовать SendMessage instead of PostMessage?
То и другое можно, но при SendMessage надо опасаться задержки потока в общем коде (критический участок кода, куда могут зайти оба потока).
Здравствуйте ua1zcl, Вы писали:
IT>>Может посылающему потоку стоит использовать SendMessage instead of PostMessage?
U>То и другое можно, но при SendMessage надо опасаться задержки потока в общем коде (критический участок кода, куда могут зайти оба потока).
Ну да, а при PostMessage — сабжа
Если нам не помогут, то мы тоже никого не пощадим.
Использовать SendMessage нельзя, так как тормозится работа основного потока (а он осуществляет низкоуровневое чтение флоппи-диска — если его остановить на некоторое время, головка пропускает нужный сектор и ждет следующего оборота диска — замедление почти в 2 раза)
Сначала чтение идёт хорошо, однако потом поток, обрабатывающий сообщения просто перестаёт получать процессорное время(всё утекает не дисковод) и, видимо, не успевает увеличивать очередь сообщений
Выхода из этой ситуации я ещё не нашёл
Всё также благодарен буду за помощь