Porting CreateThread calls to Win8 / WinRT App

霸气de小男生 提交于 2019-12-13 18:14:36

问题


I need to call a C++ library from my C# Win8/WinRT app.

The library is multithreaded and manages threads through calls to the Win32 API (WaitForSingleObject, etc.). I was able to figure out the replacements for all these calls (there is always a ...Ex version available for Apps, e.g. WaitForSingleObjectEx from <synchapi.h> see there if you're looking for it).

But there is one call I cannot figure out how to replace: it is a call to the CreateThread function. There is no equivalent, so it looks like such thread creation has to go through the new APIs now.

But I did not dive into the new threading model on WinRT yet. From your experience, what would be the right way to port this threads creation call? The only constraint is that it is a C++ library that I build as a "C++ Library for WinApp" project.

Summing-up:

In a library I am linking against for my app, threads are created through CreateThread Win32 API call. What do I need to change these calls to so that it works in my App environment?


回答1:


You are correct: you won't be able to simply replace CreateThread with a new call. You will have to port your threading code to the new APIs.

From my experience, the link Raman Sharma's posted is a great reference if you wish to port your code more easily to the WinRT ThreadPool model. I have successfully used the shim found there to implement a Win32 thread emulation layer that my older Win32-dependent code can interact with.



来源:https://stackoverflow.com/questions/15839895/porting-createthread-calls-to-win8-winrt-app

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!