Приветсвую желающих помочь!
Вопрос довольно наивный - как правильно построить логику программы ?
Есть приложение - графическая оболочка native dll, суть общатьяся с пользователем через GUI. Данные - есть совокупность строк - которую пытаюсь вывести в таблицу на основе ListView. Данных может быть много(10000 строк сденее значение). При однопоточном выполнении соответсвенно GUI виснет до момента полного запонения - что неприемлемо. Использовал генерацию событий из внешнего фонового потока - вроде бы все ничего - но время от времени вылеает странная ошибка - строка состояния (вывожу информацию о текущем состоянии процесса) генерирует необробатываемое исключение(Индекс не должен быть меньше или равен нулю). пробовал увеличить шаг до 128 строк - вроде ошибки нет, но все равно неприятно думать что это решение проблемы(шаг в 16 строк генерирует исключение постоянно), Далее пробовал вызывать процедуру заполнения таблицы и вывода информации в строку статуса асинхронно, через пул потоков и делегаты - ошибки нет, зато появилась другая проблема - не получается корректно остановить поток.
мсдн прямо не рекомендует использовать события для заполнения таблиц данными, но и корректно остановить поток тоже не получается.
Как - же быть есть ли идеи ?
Малость подробностей
вот так программа работает по логике событий, поначалу вроде все хорошо а потом