У меня есть механизм рендеринга openGL, написанный на неуправляемом C ++, и я хочу встроить его в приложение WPF. После небольшого исследования мне удалось сделать это с помощью дескриптора панели форм Windows на хосте windowsforms, как описано здесь ( 2nd solution ):
http://www.codeproject.com/Articles/127141/Unmanaged-C-OpenGL-Drawing-and-C-WinForms-WPF-inte/?display=Mobile
Пока все хорошо. Проблема в том, что мне нужно, чтобы рендеринг выполнялся в режиме реального времени, и когда какая-то операция пользовательского интерфейса занимает слишком много времени (например, заполнение сетки свойств), рендер мерцает.
Тогда я думаю, что мне нужно сделать рендеринг в отдельном потоке. Я пытался использовать этот подход:
http://blogs.msdn.com/b/dwayneneed/archive/2007/04/26/multithreaded-ui-hostvisual.aspx
Но это не работает, потому что кажется, что я не могу разместить хост Windows Forms внутри HostVisual (http://social.msdn.microsoft.com/Forums/en-AU/wpf/thread/124cc95c-a9c6-4aca-a5fc-4f959ea715c3)
Итак, есть идеи, как я могу это сделать?