微软产品的 Bug 真是千奇百怪,今天分享一个同事碰到的问题.

问题的描述: 使用了三个 System.Threading.Timer 分别在每天的三个时间点执行一个固定的统计操作,结果发现过了一段时间后, 这三天timer 的事件出发都到同一个时间点上去了,感觉有点想三个手表都没有电池一样,stop 在同一个时间点.哈哈,后来差了一下kb,这个也是微软的一个bug,到现在还没有提供公共的fix,只能找技术中心索取一个kb.

如果您也是用这个组件一定要小心, 否则可能造成很大的数据不一志:

代码如下:
49.7 天后就不正常工作了private void Form1_Load(object sender, System.EventArgs e)
{
49.7 天后就不正常工作了
49.7 天后就不正常工作了            System.Diagnostics.TextWriterTraceListener trace1
=new System.Diagnostics.TextWriterTraceListener("c:\\a.txt","fsd");
49.7 天后就不正常工作了            System.Diagnostics.Trace.Listeners.Add(trace1);    
49.7 天后就不正常工作了        
49.7 天后就不正常工作了        }

49.7 天后就不正常工作了
49.7 天后就不正常工作了        System.Threading.Timer t1;
49.7 天后就不正常工作了        System.Threading.Timer t2;
49.7 天后就不正常工作了        
private void button2_Click(object sender, System.EventArgs e)
{
49.7 天后就不正常工作了            t1
=new System.Threading.Timer(new System.Threading.TimerCallback(Test),null,0,10000) ;
49.7 天后就不正常工作了                        
49.7 天后就不正常工作了            t2
=new System.Threading.Timer(new System.Threading.TimerCallback(Test1),null,0,10000) ;
49.7 天后就不正常工作了        }

49.7 天后就不正常工作了
49.7 天后就不正常工作了        
private void Test(object o)
{
49.7 天后就不正常工作了            System.Diagnostics.Trace.WriteLine( 
" worker 1 ;   " + DateTime.Now.ToString() + "---tickcount---" + System.Environment.TickCount.ToString());
49.7 天后就不正常工作了            System.Diagnostics.Trace.Flush();
49.7 天后就不正常工作了        }

49.7 天后就不正常工作了
49.7 天后就不正常工作了        
private void Test1(object o)
{
49.7 天后就不正常工作了            System.Diagnostics.Trace.WriteLine( 
" worker 2 ;   " + DateTime.Now.ToString() + "---tickcount---" + System.Environment.TickCount.ToString());
49.7 天后就不正常工作了            System.Diagnostics.Trace.Flush();
49.7 天后就不正常工作了        }


如果有可能的话,你可以让这个程序连续运行 50 天,也就是让 Enviornment.Tickcount> 49.7*24*60*50*1000 的话,最后显示出来的时间就是一摸一样的,hoho.


到现在,我们也不太在production环境中使用hotfix,只能是在程序快运行到49天的时候,重启一下


最后的问题是,您能在短时间内重现这个问题吗?49.7 天后就不正常工作了

相关文章:

  • 2022-12-23
  • 2021-09-18
  • 2022-12-23
  • 2022-12-23
  • 2021-04-12
  • 2021-08-31
  • 2022-12-23
  • 2021-12-07
猜你喜欢
  • 2021-04-02
  • 2021-06-04
  • 2022-01-11
  • 2021-08-09
  • 2021-09-19
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案