我的应用程序源自Windows Phone 8 Direct3D Xaml示例,其中C#程序实例化包含Direct3D设备的WinPRT组件。 C#代码在UI线程上运行,组件代码在单独的应用程序线程上运行。 WinPRT组件与C ++预编译库一起使用,该库包含按线程声明的变量,静态__declspec(线程)。
变量在应用程序线程中需要时初始化,但在UI线程上调用关闭(由生命周期Closing事件引起)。关闭进程使用错误的每线程变量集,这些变量尚未初始化并导致崩溃。
我没有在关机期间在应用程序线程上调用的WinPRT组件上找到任何方法。我希望能找到一个把我的东西挂进去,但似乎没有。
那么,如何从UI线程调用应用程序线程上的关闭代码?
WinPRT严重限制了我可用的线程功能。我找不到可行的解决方案。我查看了Dispatcher类,但是在WinPRT上它只用于在工作线程的UI线程上运行代码,反之则不然。还有什么其他选择?