Эй, я не уверен, что об этом уже спрашивали.(По крайней мере, я не нашел ответов на эти конкретные вопросы).Но:
У меня есть программа, которая при запуске создает окно входа в новую UI-тему.
В этом окне пользователь может ввести данные, которые должны быть проверенысервер.Поскольку окно по-прежнему должно реагировать на действия пользователей, оно (из всего лишь UI-потока) не должно обрабатывать передачу и оценку в своем собственном потоке.Я хочу, чтобы UI-поток делегировал эту работу обратно в основной поток.
Кроме того: Основной поток (мой «клиентский» поток) должен управлять всеми действиями, которые выполняются, такими как вход в систему, обработка полученных сообщений.с сервера и т. д. (не сообщения окна)
Но я не уверен, как это сделать: 1. Должен ли я разрешить UI-Thread Queue APC в основной поток (но затемОсновной поток не знает о происходящем. 2.) Могу ли я лучше использовать объекты событий для ожидания и очереди для передачи данных из одного потока в другой? ...
Или есть способ лучшепараметры?
Например: я запускаю клиент: 1. Клиент загружает данные из файла и выполняет некоторую инициализацию
Клиент создает окно в новом потоке, которое обрабатывает введенные пользователем данные для входа в систему.
Поток окна должен уведомлять и обрабатывать то, что было введенопользователь передается клиенту.
Клиент должен теперь упаковать данные и делегировать отправляющую работу другому объекту (например, CSingleConnection), который обрабатывает отправку данных по сети (конечно же,для этого не требуется новый поток, поскольку он может обрабатываться с помощью перекрывающегося ввода-вывода ...
Один специальный поток-получатель получает данные с сервера и обрабатывает их обратно клиенту, который, в свою очередь, оценивает данные.
Если данные были правильными и некоторые специальные данные были получены от сервера, основной поток должен сигнализировать потоку пользовательского интерфейса о закрытии окна изавершить ...
Затем клиент создает новое окно, которое будет обрабатывать пользовательский интерфейс чата
поток пользовательского интерфейса чата и клиентTHread должен общаться для обработки сообщений, которые будут отправлены и получены ...
(надеюсь, это поможет мне получить то, что я пытаюсь) ...