Вызвать ошибку дескриптора при закрытии, несмотря на множество проверок работоспособности - PullRequest
0 голосов
/ 18 мая 2011

Я использую эту небольшую служебную функцию:

public static void Invoke(Control control, Action method)
{
    if (control.InvokeRequired)
    {
        if (control.IsDisposed || !control.IsHandleCreated || !control.Created)
            return;
        control.Invoke(method);
    }
    else
        method();
}

Несмотря на все эти проверки работоспособности, когда я закрываю свое приложение, случайный вызов всегда выдает эту ошибку:

Invoke or BeginInvoke cannot be called on a control until the window handle has been created.

Это, несмотря на то, что явно есть проверка, чтобы увидеть, создан ли дескриптор ... Что еще я могу сделать?

1 Ответ

2 голосов
/ 18 мая 2011

Прочитайте эту ветку , которая вникает в Invoke'ing. Проблема, с которой вы столкнулись, почти наверняка связана с исчезновением элемента управления между возвратом if (...); и Invoke делает свое дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...