Я получаю эту ошибку в коде, который работал. Я не изменил код.
Вот полная ошибка:
CLR не смог перейти из контекста COM 0x3322d98 в контекст COM 0x3322f08 в течение 60 секунд. Поток, который владеет целевым контекстом/квартирой, скорее всего, либо выполняет ненакачивание, либо обрабатывает очень длительную операцию без перекачки сообщений Windows. Эта ситуация, как правило, имеет отрицательное влияние на производительность и может даже привести к тому, что приложение становится неактивным или память автоматически накапливается с течением времени. Чтобы избежать этой проблемы, все потоки с одной резьбой (STA) должны использовать примитивы ожидания накачки (например, CoWaitForMultipleHandles) и регулярно накачать сообщения во время длительных операций.
И вот код, который вызвал его:
var openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
openFileDialog1.DefaultExt = "mdb";
openFileDialog1.Filter = "Management Database (manage.mdb)|manage.mdb";
//Stalls indefinitely on the following line, then gives the CLR error
//one minute later. The dialog never opens.
if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
....
}
Да, я уверен, что диалог не открыт в фоновом режиме, и нет, у меня нет явного кода COM или неуправляемого сортировки или многопоточности.
Я не знаю, почему OpenFileDialog не откроется - любые идеи?