ОБНОВЛЕНИЕ: Таймер - это System.Threading.Timer.
У нас есть элемент управления пользовательского интерфейса, который обновляется по таймеру.При избавлении от нашего контроля мы вызываем timer.Dispose ().Мы сталкиваемся со случайными исключениями ObjectDisposedOException, когда таймер срабатывает после того, как был активирован элемент управления пользовательским интерфейсом.
Я вижу это в документах msdn :
Перегрузка метода Dispose () вызвана, поскольку таймер ставит в очередь обратные вызовы для выполнения потоками пула потоков. Вы можете использовать перегрузку метода Dispose (WaitHandle), чтобы дождаться завершения всех обратных вызовов. "
Однако CompactFramework не имеет доступа к этому перегруженному методу.
Как лучше всего обойти эту ситуацию?Есть ли способ заблокировать наш метод Dispose, пока таймер не будет полностью удален?Другие предложения?
Спасибо!