【问题标题】:WinAPI ThreadpoolWinAPI 线程池
【发布时间】:2012-10-20 16:42:59
【问题描述】:

我在 google 中搜索过,但找不到如何将我自己的函数添加到 Threadpool。我有一个带有签名void MyFunction(void *param); 的函数。我如何创建线程池并添加此函数以进行异步执行。我知道存在TrySubmitThreadpoolCallback() 函数,但我不明白如何使用它。我会很高兴看到简单的例子。

【问题讨论】:

  • TrySubmitThreadpoolCallback 看起来并不难使用,但是对于回调,您的函数签名不合适。
  • @ta.speot.is 如何以最简单的方式将我的函数添加到 winapi 线程池。我只需要同步执行它。

标签: c++ winapi


【解决方案1】:

为了能够使用TrySubmitThreadpoolCallback,您应该将函数的签名更改为

void CALLBACK MyFunction( PTP_CALLBACK_INSTANCE Instance, void* Context );

然后您就可以毫无问题地使用它了。请记住,在 Windows 中,大多数回调应该在其定义中包含 CALLBACK,因为 C 中的默认调用约定是 __cdecl,但在 Windows API 中通常是 __stdcall(请阅读 CALLBACK)。

【讨论】:

  • 感谢您的回复!想象一下我已经修改了签名,我该如何将此功能添加到线程池。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
  • 2017-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-02
  • 1970-01-01
相关资源
最近更新 更多