首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >winapi apc函数参数传递-最佳实践是什么

winapi apc函数参数传递-最佳实践是什么
EN

Stack Overflow用户
提问于 2012-12-04 15:23:24
回答 1查看 139关注 0票数 0

您好,我使用winapi的QueueUserAPC在另一个线程中调用apc函数。我的问题是,向它传递参数的最佳实践是什么。我指的是对象生存期和分配/释放责任。

双WINAPI QueueUserAPC(PAPCFUNC pfnAPC,HANDLE hThread,ULONG_PTR dwData);

我正在使用dwData传递参数来传递指向某些数据的指针,我想知道我应该如何处理它。我需要确保它一直存活到接收线程使用完它。我是否应该使用智能指针来确保数据在不再使用时被释放?

我猜是调用线程和dealloc中的分配。在接收中是可能的,但可能不是那么好的事情。

还有什么可以做的吗?我想我想避免两者之间的同步,只是为了通知接收线程已经完成了数据……

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-04 15:36:35

在发送线程中分配和在接收线程中释放很容易,但它的主要缺点是它可能会泄漏,即使您处理了发送失败,接收线程也可能在有机会执行APC之前完成。

避免泄漏的最简单方法可能是为sent data -maybe每个线程创建一个队列-当线程完成时,您遍历线程队列并释放所有挂起的数据。

但和往常一样,细节才是关键。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13697940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档