我正在开发一个可以在后台发送大量电子邮件的 Web 应用程序。
要在后台运行任务,我将使用 HostingEnviroment.QueueBackgroundWorkItem 或一些库,例如 Hangfire。因为我希望我的邮件程序尽可能快地运行它的工作,所以我使用多线程,因此在上述工具下运行的主线程也会创建许多新线程。众所周知,ASP.NET 可以出于多种原因杀死后台工作人员。
- .NET 杀死所有这些线程的顺序是什么?
- 父/子线程有没有办法知道子/父线程被中止?
- 在 .NET 完全关闭它之前,我必须在这些线程中处理多长时间?