У меня есть следующий метод внутри формы
public void Bye()
{
if (InvokeRequired && IsHandleCreated)
{
Invoke(new Action(Bye));
return;
}
Close();
}
Эта форма создается в потоке основной формы, но этот метод вызывается из System.Threading.Timer
обратного вызова.Таймер создается в методе Main перед вызовом Application.Run.
В моем приложении много таких форм с помощью метода Bye.Таймер вызывает метод Bye случайной формы каждую секунду.Если я продолжаю работу приложения в течение нескольких минут, я получаю исключение при вызове Invoke.Сообщение об исключении:
Invoke or BeginInvoke cannot be called on a control until the window handle has been created.
Странно то, что при возникновении исключения Visual Studio сообщает мне, что InvokeRequired и IsHandleCreated имеют значение falseКак он мог даже попытаться вызвать Invoke в этом случае?Чего мне не хватает?