Skip to main content
 首页 » 编程设计

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

2024年02月20日42bluestorm

我想我的计时器在一段时间后停止工作,我刚刚测量了 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 服务,或者持久存储和轮询...

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