Время медленного ответа при отправке данных о событии в другую форму
У меня есть приложение Winform C#, которое имеет 4 различных пользовательских элемента управления на экране. Каждый из этих пользовательских элементов управления содержит элемент управления сеткой данных. Когда пользователь обновляет значение ячейки в любом из этих четырех элементов управления, я вызываю пользовательское событие, отправляя значение ячейки в 5-ю форму на экране.
Эта 5-я форма очень похожа на электронную таблицу Excel. 5-я форма должна показывать новое значение, отправленное на ее панель / окно. Проблема заключается не в отправке данных от любого из 4 пользовательских элементов управления, который работает и отражается в 5-й форме.
Однако, когда возникает событие для отправки данных, пользователь останавливает ввод на несколько секунд. Я думаю, что 5-й класс занят обновлением ячеек. Поэтому мой вопрос заключается в том, реализую ли я очередь сообщений или что-то подобное (wcf) для отправки новых значений в электронную таблицу, например, элемент управления, будет ли этот 5-й элемент управления собирать данные (может быть, в случае события Application Idle), и не будет ли замедляться ввод данных конечным пользователем при любой из 4 основных элементов управления, или я просто увижу ту же проблему, потому что все формы работают в одном потоке пользовательского интерфейса. Я провел некоторое тестирование, чтобы выяснить, быстрее ли будет, если 5-й элемент управления скрыт от глаз, но я вижу те же результаты. Также я сделал несколько проверок времени, и определенно после того, как я вызвал событие Value_Changed, система стала очень медленной.
Любые идеи о том, как подойти и решить эту проблему?
1 ответ
Возможно, вам следует попробовать простой Control.BeginInvoke() для передачи данных со структурой. Это гарантирует, что у вас не возникнет проблем с потоками между объектами И будет асинхронным.