清理 C# 应用程序出口上的非托管 C++ 线程
本文关键字:C++ 线程 应用程序 出口 清理 | 更新日期: 2023-09-27 17:55:20
这是我的设置:
1) C# 应用程序启动并调用导出的非托管 C++ DLL 函数
2) DLL 函数通过 Win32 创建线程生成一个线程
3)这个新线程在while循环中"工作",检查退出标志
当我退出 c# 应用程序时,线程会立即退出。
问题:
1) 我可以做些什么来让我的线程在退出之前清理?
非常感谢 - 我是 c# 世界的新手,但对 c++ 有经验
当 C# 应用退出时:
- 设置对线程可见的标志。
- 在
CreateThread
返回的HANDLE
上拨打WaitForSingleObject
。 这将使它等待线程退出。 - (可选)成为一个好公民,并在线程的
HANDLE
上调用CloseHandle
以释放其资源,尽管如果应用即将退出,这并不重要。 - 定期检查线程中的此标志,以查看它是否应退出循环。