我需要从C#Win8 / WinRT应用程序调用C ++库。
库是多线程的,通过调用Win32 API(WaitForSingleObject
等)来管理线程。我能够找出所有这些来电的替代品(应用程序总有一个...Ex
版本,例如来自WaitForSingleObjectEx
的{{1}}如果您正在寻找there对于它)。
但有一个电话我无法弄清楚如何替换:它是对CreateThread
function的调用。没有等价物,所以看起来这样的线程创建现在必须通过新的API。
但我还没有深入研究WinRT上的新线程模型。根据您的经验,什么是移植此线程创建调用的正确方法?唯一的限制是它是一个C ++库,我构建为“WinApp的C ++库”项目。
总结性:
在我为我的应用程序链接的库中,线程是通过CreateThread
Win32 API call创建的。我需要更改这些调用以便它在我的应用程序环境中运行?
答案 0 :(得分:0)
你是对的:你不能简单地用新的呼叫替换CreateThread。您必须将线程代码移植到新API。
根据我的经验,如果您希望将代码更轻松地移植到WinRT ThreadPool模型,那么link Raman Sharma的发布是一个很好的参考。我已成功使用在那里找到的垫片来实现一个Win32线程仿真层,我的旧的Win32相关代码可以与之交互。