gpt4 book ai didi

c# - 是否保证一个线程将在 aspnet 中完成?

转载 作者:行者123 更新时间:2023-12-03 13:19:56 27 4
gpt4 key购买 nike

我在aspnet中有这个简单的代码:假设没有异常,文件锁定也没有进程终止:

    new Thread(()=>{
Thread.sleep(15000);
// GC.Collect();
File.Write (...); // dummy file

}).Start();

// GC.Collect();

从我的测试中,该文件总是被创建。

问题

我不理解的情况是请求生命周期比线程执行短得多,但它仍然有效。就这样 。这是我的主要问题

是否始终保证将创建文件?

注意,这只是检查行为的测试。
该页面也是一个只有此代码的空页面。我也知道加入会等待

最佳答案

它不是。当 IIS 决定回收整个进程时,它将同时关闭后台和前台线程。见 this answer .

幸运的是,您可以确保它们不会被打断。你可以通过实现 IRegisteredObject 告诉 ASP.NET 你的线程。界面。然后您可以使用 HostingEnvironment.RegisterObject 注册您的对象。 .见 The Dangers of Implementing Recurring Background Tasks In ASP.NET

关于c# - 是否保证一个线程将在 aspnet 中完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24361642/

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