Я создал компонент WR/WP8, не соответствующий процессу, с собственным фоновым потоком. Он обрабатывает SIP-стек внутри и работает в фоновом потоке. Это модифицированный код из примера MSDN от ChatterBox. https://code.msdn.microsoft.com/windowsapps/ChatterBox-VoIP-sample-app-b1e63b8bWindows Runtime (WP 8) из компонентов процесса и событий подъема/подписки
В последние дни я добавляю делегатов для сбора событий из компонента. В C++/CX это:
public delegate void OnLogMessage(Platform::String^ msg);
public ref class Logger sealed
{
public:
Logger();
virtual ~Logger();
void FlushLog();
event OnLogMessage^ OnLogMessage;
};
Существует подписка на события в C# код:
BackgroundProcessController.Instance.Logger.OnLogMessage += new IntTalk.OnLogMessage(mLogger_OnLogMessage);
Он строит нормально.
Но во время отладки я вижу исключение:
A first chance exception of type 'System.Exception' occurred in mscorlib.ni.dll
Additional information: Interface not registered (Exception from HRESULT: 0x80040155)
If there is a handler for this exception, the program may be safely continued.
Proxy окурок DLL генерируется. Я проверил файлы .h/.c - они включают в себя код для событий.
Что может быть причиной этой проблемы?
Несколько слов о втором подходе - события не сортируются в основной поток пользовательского интерфейса. Во всяком случае, это приемлемо для меня. – Dmytro