Для проекта, над которым я работаю, у меня есть форма с кучей компонентов DataGridView, которые должны отображать некоторые данные. Каждый DataGridView имеет свой собственный DataTable, связанный с ним. Данные, которые должны отображаться, отправляются периодически. Мое приложение должно читать эти данные, анализировать их и соответствующим образом заполнять таблицы данных. Поскольку я хочу сохранить отзывчивость формы, я реализовал прием данных (блокировку) в бесконечном фоновом воркере.
В фоновом рабочем я получаю данные и анализирую/преобразовываю их в значения, которые подходят для DataTables. Теперь вот мой вопрос: на данный момент я присваиваю эти значения непосредственно объектам DataTable. (Поэтому я делаю это из события DoWork фонового рабочего)
Мне интересно, действительно ли это. Однажды у меня было исключение индекса за пределами границ, и мне было интересно, связано ли это как-то с этим. Является ли это безопасным и рекомендуемым способом, или мне следует использовать вызовы в событии DoWork моего фонового рабочего для обновления таблиц данных?