2013-04-05 197 views
1

我需要从我的C#Win8/WinRT应用程序调用C++库。将CreateThread调用移植到Win8/WinRT应用程序

该库是多线程的,并通过调用Win32 API(WaitForSingleObject等)来管理线程。我能够找出所有这些调用的替代品(总有一个...Ex版本可用于应用程序,例如WaitForSingleObjectEx<synchapi.h>如果您正在寻找there)。

但有一个电话我无法弄清楚如何替换:这是一个电话CreateThread function。没有等价的东西,所以看起来这样的线程创建现在必须经历新的API。

但我没有深入到WinRT上的新线程模型。根据您的经验,将移植此线程创建调用的正确方法是什么?唯一的限制是它是一个C++库,我构建为“WinApp的C++库”项目。

总结会:

在我链接到的我的应用程序库,线程通过CreateThread Win32 API call创建。我需要更改这些电话才能在我的应用程序环境中工作?

+3

您可能想查看关于在新Windows Store应用程序环境中模拟旧线程API的博客文章:http://blogs.msdn.com/b/shawnhar/archive/2012/03/12/createthread-换窗口-8- metro.aspx?的PageIndex = 2 – 2013-04-05 17:39:35

回答

0

你是对的:你将无法简单地将CreateThread替换为新的调用。您将不得不将线程代码移植到新的API中。

从我的经验来看,link拉曼Sharma的发布是一个很好的参考,如果你希望你的代码移植更容易地把WinRT的线程池模型。我已经成功地使用了那里发现的垫片来实现一个Win32线程仿真层,我的老的Win32相关代码可以与之交互。

相关问题