gpt4 book ai didi

c# - 在 C# 应用程序退出时清理非托管 C++ 线程

转载 作者:行者123 更新时间:2023-11-30 04:34:32 25 4
gpt4 key购买 nike

这是我的设置:
1) c# 应用程序启动并调用导出的非托管 c++ dll 函数
2) dll函数通过win32 CreateThread
产生一个线程3) 这个新线程在 while 循环中“工作”,检查退出标志

当我退出 c# 应用程序时,线程立即退出。

问题:
1) 我该怎么做才能让我的线程在退出前进行清理?

非常感谢 - 我是 c# 世界的新手,但对 c++ 有经验

最佳答案

当您的 C# 应用程序退出时:

  1. 设置线程可见的标志。
  2. CreateThread 返回的 HANDLE 上调用 WaitForSingleObject。这将使它等待线程退出。
  3. 可以选择成为一个好公民,并在线程的 HANDLE 上调用 CloseHandle 以释放其资源,但如果应用程序即将退出,这并不重要。
  4. 定期检查线程内的这个标志,看它是否应该退出循环。

关于c# - 在 C# 应用程序退出时清理非托管 C++ 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5931639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com