【问题标题】:Porting CreateThread calls to Win8 / WinRT App将 CreateThread 调用移植到 Win8/WinRT 应用程序
【发布时间】:2013-05-09 01:40:13
【问题描述】:

我需要从我的 C# Win8/WinRT 应用中调用 C++ 库。

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

但是有一个电话我不知道如何替换:它是对CreateThread function 的电话。没有等价物,所以看起来这种线程创建现在必须通过新的 API。

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

总结:

在我为我的应用程序链接的库中,线程是通过CreateThread Win32 API call 创建的。我需要将这些调用更改为哪些内容才能在我的应用环境中运行?

【问题讨论】:

标签: multithreading winapi windows-8 winrt-async


【解决方案1】:

您是对的:您不能简单地将 CreateThread 替换为新的调用。您必须将线程代码移植到新的 API。

根据我的经验,如果您希望更轻松地将代码移植到 WinRT ThreadPool 模型,link Raman Sharma 的帖子是一个很好的参考。我已经成功地使用在那里找到的 shim 来实现一个 Win32 线程仿真层,我的旧的 Win32 相关代码可以与之交互。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-21
    • 2010-11-29
    • 2011-08-04
    • 2014-05-28
    • 2011-02-27
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多