【发布时间】:2011-05-09 01:34:27
【问题描述】:
这是我的设置:
1) c# 应用程序启动并调用导出的非托管 c++ dll 函数
2) dll 函数通过 win32 CreateThread 产生一个线程
3) 这个新线程在 while 循环中“工作”,检查退出标志
当我退出 c# 应用程序时,线程立即退出。
问题:
1) 我该怎么做才能让我的线程在退出前进行清理?
非常感谢 - 我是 c# 世界的新手,但对 c++ 很有经验
【问题讨论】:
-
为什么不让 C# 应用设置退出标志并在应用退出时等待线程句柄?
-
也许这就是我所缺少的,如何在 c# 应用程序中捕获“退出”事件?
-
@user371602 :每个 C# 应用程序都有一个
Main入口点,就像 C++ 应用程序有main一样。作为简单的第一步,尝试将其内容包装在try..finally中,然后等待finally中的线程。几乎肯定有更好的方法,但这取决于应用程序的类型。安慰?赢表格? WPF?
标签: c# c++ multithreading