gpt4 book ai didi

c# - MVC 代码查看 Controller 是否仍在使用中

转载 作者:太空宇宙 更新时间:2023-11-03 14:12:41 25 4
gpt4 key购买 nike

在我的 MVC 应用程序中,我有一个创建 Model 实例的 Controller 。目的。内Model ,我有一个计时器,它每隔 700ms 执行一个函数.当我在我的网站中运行 Controller 时,即使在我关闭浏览器窗口后,我仍然会看到计时器在运行。 (计时器启动/停止串行端口连接,我有一个指示灯指示何时有通信)。

在我完全重新启动 IIS 之前,通信实际上永远不会停止。

有什么方法可以检查 Controller 是否仍在使用中,如果 Controller 不再事件则停止计时器?

这是模型代码:

public CheckPulses(int interval) {
CheckPulsesTimer(interval);
}

public void CheckPulsesTimer(int interval) {
Timer timer = new Timer();
timer.Enabled = true;
timer.AutoReset = true;
timer.Interval = interval;
timer.Elapsed += new ElapsedEventHandler(GetPulses);
}

这是 Controller 代码:
public ActionResult Index() {
CheckPulses Pulses = new CheckPulses(700);
return View();
}

我想也许我应该在 GetPulses 中添加一些内容事件,每次定时器间隔到期时都会发生,并在那里检查 Controller 是否仍在使用中。如果不是,请停止计时器。但是,我不确定如何编写该支票。谁能指出我正确的方向?

最佳答案

您可能不会停止或处置 Timer。这将导致它不会被垃圾收集并在应用程序运行期间保持事件状态。

您应该在 Controller 的 Dispose 方法中停止并处理 Timer。

关于c# - MVC 代码查看 Controller 是否仍在使用中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7341764/

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