2012-10-20 156 views
0

我已经在谷歌搜索,但无法找到我如何添加我自己的函数到线程池。我有一个签名为void MyFunction(void *param);的功能。我如何创建Threadpool并添加此函数以执行assynchronos。我知道存在TrySubmitThreadpoolCallback()函数,但我不明白如何使用它。我会很高兴看到一个简单的例子。WinAPI线程池

+1

'TrySubmitThreadpoolCallback'看起来不难使用,但对于回调函数,你的函数签名是不合适的。 –

+0

@ ta.speot.is如何以最简单的方式将我的函数添加到winapi线程池中。我只需要执行它assynchonosely。 – abilash

回答

0

为了能够使用TrySubmitThreadpoolCallback你应该改变你的函数的签名

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

然后你可以使用它没有问题。请记住,在Windows中,大多数回调的定义应该是CALLBACK,因为C中的默认调用约定是__cdecl,但在Windows API中,通常是__stdcall(请阅读)。

+0

感谢您的回复!想象一下,我已经改变了签名,以及如何将此函数添加到线程池。 – abilash