c# - 计时器在 Web 服务中 20 分钟后停止工作

标签 c# timer garbage-collection

我想我的计时器在一段时间后停止工作,我刚刚测量了 20 分钟,到目前为止还没有发现任何其他导致停止的原因。如果它的垃圾被收集了,我应该如何声明它才不会被收集?

[WebMethod, SoapHeader("spAuthenticationHeader")]
public void startStreaming()
{
    if (Globals._streamTimer == null)
        Globals._streamTimer = new System.Threading.Timer(handleStream, null, 0, 30000);
        return Globals._returnValue;
}


public static class Globals
{
    public static System.Threading.Timer _streamTimer = null;
}

最佳答案

看看您的 IIS 设置 - 20 分钟?

Web 应用程序不应长时间运行。无论你在做什么,你都应该以不同的方式去做。也许是 Windows 服务,或者持久存储和轮询...

或者,您可以拼凑它并增加超时值。

IIS Idle Time-out

关于c# - 计时器在 Web 服务中 20 分钟后停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12386151/

相关文章:

java - Android - 定时器类

.net - C# 中数据表数组的垃圾收集处理

c# - 正则表达式只允许数字字符加号、点和 E

c# - 无法转换为类型 System.IConvertible

c# - 带有表格的 Migradoc 标题

c# - 如何重新计算单元格的公式?

java - 我在 Timer 类中找不到 start() 方法

c - c语言socket编程中接收数据时如何实现定时器

java - NewRatio 参数不适用于 CMS 垃圾收集器

java - Apache Storm worker 内存泄漏 - 堆外