2010-11-02 3 views
7

В течение последних нескольких лет я использовал WPF в приложении с смешанным режимом для отображения различных битов & элементов пользовательского интерфейса. WPF используется сборкой C# для создания пользовательского интерфейса - он ссылается на сборку на C++/CLI, которая содержит некоторый собственный код. Нативный код не вызывает вызовов ОС за пределами нескольких printf; это чисто вычислительная.RaceOnRCWCleanup при закрытии приложений WPF

При запуске с прикрепленным отладчиком, я вижу управляемый помощник отладки «RaceOnRCWCleanup» после закрытия приложения, что указывает на наличие некоторого COM-компонента с проблемами очистки многопоточности.

Я не использую COM в любой форме напрямую, но, возможно, C++/CLI или WPF. Предупреждения об отключении приложений не особенно страшны - ведь приложение все равно выходит, но я хотел бы понять, что происходит не так. Могу ли я сделать что-нибудь, чтобы избежать этого предупреждения? Есть ли скрытая ошибка где-то, которая просто ждет, чтобы укусить меня, или это ложное предупреждение?

Это пример 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# 

Кто-нибудь испытал тот же вопрос? Кто-нибудь знает, что происходит?

+0

Мы только начали испытывать эту проблему после обновления наших проектов с .Net 3.5 до 4.0. –

ответ

1

С каких это пор вы получаете это исключение? Я также получил его сегодня в первый раз в нашем бизнес-приложении wpf. Это происходит непрерывно каждый раз, когда я закрываю приложение, не внося существенных изменений. Может быть, Windows Update является источником зла? Мы также не выяснили, откуда оно взялось, и как его предотвратить. Я отправлю решение, как только нам удастся решить проблему. Я не думаю, что это как-то связано с вашей сборкой C++/CLI. Мы не используем сборки C++/CLI.

Jan

+1

Я уверен, что я получаю эту ошибку с очень долгого времени. Я обычно игнорирую это (у меня MDA не отмечен в VS), так что, возможно, это сработало некоторое время; но я, конечно, видел это, по крайней мере год назад - может быть, больше. –

+1

Хммм. Хорошо, поэтому моя теория обновления Windows может быть похоронена. Сумасшедшая вещь: вчера она казалась воспроизводимой почти для каждого приложения. Сегодня он вообще не появился ... Так что в следующий раз, когда я его получу, я попытаюсь найти более конкретный источник с .net reflector pro. Спасибо за ваш ответ. – JanW

+0

Мы можем видеть совершенно разные вещи, но если вы когда-нибудь выясните, что это такое, обязательно отправьте его! –

Смежные вопросы