Мое программное обеспечение будет имитировать несколько сотен аппаратных устройств, каждое из которых будет отправлять несколько тысяч отчетов на сервер базы данных.
Попытка без потоков не дала очень хороших результатов, так что теперь пришло время для потоков.
Поскольку я выполняю нагрузочное тестирование сервера d / b, некоторые из этих транзакций будут выполнены успешно, а некоторые могут потерпеть неудачу.Графический интерфейс основной программы должен отражать это.Как потоки должны сообщать свои результаты основной программе?Обновить глобальные переменные?Отправить сообщение?Или что-то еще?
Теперь, если я обновлю только в конце каждого потока, графический интерфейс будет выглядеть довольно скучно (и я не могу сказать, зависла ли программа).Было бы неплохо периодически обновлять графический интерфейс.Но это может вызвать конфликт, поскольку потоки ожидают обновления других потоков (например, если я пишу в глобальные переменные, мне нужен мьютекс, который будет блокировать каждый поток, ожидающий записи).
IЯ новичок в потоках.Как это обычно делается?Возможно, основная программа могла бы опрашивать потоки, а не потоки, формирующие основную программу?