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?
Po prostu zaczęliśmy doświadczać tego problemu po aktualizacji naszych projektów z .Net 3.5 do 4.0. –