Hat*_*oft 2 .net c# multithreading timer .net-4.0
以下类来自.Net Windows服务.DoSomeDatabaseStuff方法在第一次启动时需要10分钟,但是当时间结束时,此方法不会再次被调用.
public class Test
{
public void Start()
{
DoSomeDatabaseStuff();
_oTimer = new Timer(60000);
_oTimer.Elapsed += OnTimeout;
_oTimer.AutoReset = true;
_oTimer.Start();
}
private void OnTimeout(object source, ElapsedEventArgs e)
{
DoSomeDatabaseStuff();
_oTimer = new Timer(60000);
_oTimer.Elapsed += OnTimeout;
_oTimer.AutoReset = true;
_oTimer.Start();
}
}
Run Code Online (Sandbox Code Playgroud)
此代码中存在许多严重问题: