2010-11-02 20 views
7

Od kilku lat używam WPF w aplikacji w trybie mieszanym, aby wyświetlać różne elementy interfejsu użytkownika w postaci bitów &. WPF jest używany przez zespół C# do generowania interfejsu użytkownika - odwołuje się do złożonego zestawu C++/CLI, który zawiera jakiś kod natywny. Natywny kod nie wykonuje żadnych wywołań systemu operacyjnego poza kilkoma printf; to czysto obliczeniowe.RaceOnRCWCleanup podczas zamykania aplikacji WPF

Po uruchomieniu z dołączonym debugerem po zamknięciu aplikacji pojawia się komunikat "Wywołany system debugowania" "RaceOnRCWCleanup" - sugerujący, że istnieje jakiś składnik COM z wielowymiarowymi problemami czyszczenia.

Nie używam COM w żaden sposób bezpośrednio, ale być może C++/CLI lub WPF jest. Ostrzeżenia o zamknięciu aplikacji nie są szczególnie przerażające - w końcu aplikacja i tak wychodzi - ale chciałbym zrozumieć, co się dzieje. Czy mogę zrobić cokolwiek, aby uniknąć tego ostrzeżenia? Czy jest gdzieś ukryty błąd, który tylko czeka, by mnie ugryźć, czy też jest to fałszywe ostrzeżenie?

To jest przykład StackTrace:

mscorlib.dll!System.Runtime.InteropServices.Marshal.ReleaseComObject(object o) Line 1826 + 0xc bytes C# 
PresentationFramework.dll!System.Windows.Documents.TextServicesHost.DeactivateThreadManager() Line 465 + 0xd bytes C# 
PresentationFramework.dll!System.Windows.Documents.TextServicesHost.OnUnregisterTextStore(object arg) Line 331 C# 
PresentationFramework.dll!System.Windows.Documents.TextEditor.DetachTextStore(bool finalizer) Line 249 + 0x6b bytes C# 
WindowsBase.dll!System.Windows.Threading.Dispatcher.ShutdownImplInSecurityContext(object state) Line 1363 + 0xfffffffc bytes C# 
mscorlib.dll!System.Threading.ExecutionContext.runTryCode(object userData) Line 484 + 0xce bytes C# 

Czy ktoś doświadczył ten sam problem? Czy ktoś wie, co się dzieje?

+0

Po prostu zaczęliśmy doświadczać tego problemu po aktualizacji naszych projektów z .Net 3.5 do 4.0. –

Odpowiedz

1

Od kiedy otrzymasz ten wyjątek? Dostałem go również dzisiaj po raz pierwszy na naszej aplikacji biznesowej wpf. Występuje ciągły za każdym razem, gdy zamykam aplikację, bez wprowadzania większych zmian. Może jakaś Windows Update jest źródłem zła? Nie ustaliliśmy też, skąd się bierze ani jak temu zapobiec. Napiszę rozwiązanie, gdy tylko uda nam się rozwiązać wyjątek. Nie sądzę, że ma to coś wspólnego z zespołem C++/CLI. Nie używamy złożeń C++/CLI.

Jan

+1

Jestem prawie pewien, że otrzymuję ten błąd od bardzo dawna. Zazwyczaj to zignorowałem (czy MDA nie jest zaznaczone w VS), więc może działało przez jakiś czas; ale na pewno widziałem to co najmniej rok temu - może więcej. –

+1

Hmmm. Okay, więc moja teoria aktualizacji systemu Windows może zostać pochowana. Szalone jest to, że wczoraj zdawało się, że jest odtwarzalne niemal przy każdym zastosowaniu. Dzisiaj w ogóle się nie pojawił ... Więc następnym razem, gdy go dostanę, spróbuję znaleźć bardziej szczegółowe źródło z .net reflector pro. Dziękuję za odpowiedź. – JanW

+0

Być może widzimy zupełnie inne rzeczy, ale jeśli kiedykolwiek się zorientujesz, co to było, to proszę, opublikuj to! –

Powiązane problemy