Mam klasę w C# (.net 3.5 cp, vs2010), która wykonuje skomplikowane komplikacje, które zwykle zajmuje dużo czasu. Po minucie zostanie zgłoszony wyjątek, który wykrył ContextSwitchDeadlock. Wyjątek jest zlokalizowany do mojego nieangielskiego języka, więc nie mogę skopiować wklej, ale znaczenie jest następujące: ¨ Moduł CLR nie może przejść z kontekstu COM ... do kontekstu COM ... przez 60 sekund. Podprocesy, do których należy kontekst docelowy/apartament, prawdopodobnie wykonują niepotrzebne oczekiwanie lub przetwarzają bardzo długą operację bez pompowania komunikatów systemu Windows..NET - Wykryto ContextSwitchDeadlock
Wygląda na to, że moja aplikacja oblicza się i nie reaguje na okna przez długi czas, a studio graficzne wyłącza ją i zgłasza możliwe zakleszczenie.
starałem się zrobić kilka badań i znaleźć dwa rozwiązania:
wyłączyć niektóre opcje w Visual Studio debbuger wykrywania zakleszczenia. Nie działa dla mnie, ponieważ jest to jedyne narzędzie do debugowania.
Zadzwoń do jakiejś metody DoEvents, ale dotyczyła ona formularzy Windows, a nie WPF i używam WPF.
Było też propozycja, aby utworzyć oddzielny wątek, ale jestem całkowicie nowy do gwintowania i nie wiem co mam zrobić. Wszelkie sugestie proszę?
Dziękuję, spróbuję backgroundworker. –