Otrzymuję ten błąd na kodzie, który działał. Nie zmieniłem kodu.CLR nie może przejść z kontekstu COM [...] przez 60 sekund.
Oto pełna błąd:
The CLR has been unable to transition from COM context 0x3322d98 to COM context 0x3322f08 for 60 seconds. The thread that owns the destination context/apartment is most likely either doing a non pumping wait or processing a very long running operation without pumping Windows messages. This situation generally has a negative performance impact and may even lead to the application becoming non responsive or memory usage accumulating continually over time. To avoid this problem, all single threaded apartment (STA) threads should use pumping wait primitives (such as CoWaitForMultipleHandles) and routinely pump messages during long running operations.
A oto kod, który go spowodował:
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)
{
....
}
Tak, jestem pewien, że okno nie jest otwarte w tle, a nie, Nie mam żadnego wyraźnego kodu COM ani niezarządzanego zestawiania lub wielowątkowości.
Nie mam pojęcia, dlaczego OpenFileDialog się nie otworzy - jakieś pomysły?
Nigdy nie widziałem .Filter wykorzystywane bez gwiazdką. Spróbuj '" Zarządzanie bazą danych (* .mdb) | * .mdb "' Nie wiem, czy to może być mylące coś w ramach. – AaronLS
@Aaron: Jak już powiedziałem, zadziałało to wczoraj. Szukam tylko określonego pliku o tej konkretnej nazwie. –
To nie jest błąd, to ostrzeżenie * debuggera *. Wyprodukowany przez asystenta debugowania zarządzanego przez ContextSwitchDeadlock i zaprojektowany do ostrzeżenia o możliwym impasie z powodu marszczenia COM. OpenFileDialog używa dużo COM. Otrzymasz go tylko podczas debugowania aplikacji. Limity czasu sieci są bardzo długie, trzeba będzie chwilę poczekać, zanim zostanie zgłoszony prawdziwy wyjątek. –