可能的重复:
C# 线程/锁混淆 https://stackoverflow.com/questions/1280723/c-sharp-threading-lock-confusion
我有以下问题:我有一个监视类,它正在运行它自己的线程,该线程从队列写入文件(因此主应用程序不必等待 IO)。但是,当主应用程序线程结束时(控制流在最后一行之后运行),监视器线程也会结束,即使它仍在运行(已满队列)。
有什么方法可以在不修改主线程的情况下等待工作线程完成吗? C#。
编辑:我无法修改主线程。我只为具有给定 API 的大型应用程序编写“支持”代码(一种静态方法,包含我应编写的内容,从配置中读取的位置),无法更改线程,主应用程序不得依赖于我的代码。
把它们调换一下。让您的主线程成为监视线程,并从那里生成工作线程(从 Q 写入文件)。
或者让主线程启动线程进行监视和工作,然后让主线程旋转并等待(循环直到它从其他线程获得中止/完成通知)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)