Вот я думаю можно создать какой нибудь список задач в который будут вписаны задачи которые необходимо выполнить до закрытия программы, а так же что-бы это не замораживало основной поток и не конфликтовало через раз само с собой?
Принцип задачи:
Существует Программа с классами:
Values - Значения
Attributes - Атрибуты
Changable - Изменения
Существует файл Excel'а с ячейками где хранятся все значения для считывания (около 100 000 Строк)
Считывание происходит как по мне крайне медленно. В принципе за секунду обрабатывается около 10-15 строк.
При этом чем дольше идет считывание тем медленнее работает программа.
Настроил 2 метода, что конфликтуют между собой во время работы программы. Оно и понятно обращаются они то к одному файлу Excel.
1. Считывание ячеек и создание объектов на их основе для списка вывода в listbox.
2. Запись в Excel файл строки для пропуска, или её полное удаление. И так же удалить объект из listbox'a.
ПС. Пока что не разобрался как тут выкидывать проекты, но если нужен будет весь исходник для решения вопроса по пулу исполняемых задач - подскажите как выложить и я выкину весь солюшн сюда.
ППС:
Как я запускаю Task:
await Task.Factory.StartNew(
() => ReadForm(i),
TaskCreationOptions.LongRunning);