win form 循环执行一个方法

jin225 2013-10-11 05:12:05
程序需要一直执行一个方法 然后轮询,

 public main()
{

System.Timers.Timer t = new System.Timers.Timer(5000);//实例化Timer类,设置间隔时间为10000毫秒;
t.Elapsed += new System.Timers.ElapsedEventHandler(onMyTimerMain);//到达时间的时候执行事件;
t.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;

}
// 时间事件,定时触发
private void onMyTimerMain(object sender, System.Timers.ElapsedEventArgs e)
{
try
{
DoMaketPrice();
}
catch (Exception err)
{
txtMsLog.Text = err.Message;
}
}
private void DoMaketPrice()
{
...
}



现在遇到问题 因为DoMaketPrice() 这个方法需要执行的程序太多有时候可能5秒钟还没有执行完,这样由于5秒时间已经到了 程序又开始重新循环执行DoMaketPrice() 这个方法 导致一些操作到一半停止了。

现在想循环执行DoMaketPrice() 这个方法等这个方法执行完了 在等待5秒 重新执行。
该怎么修改,请各位帮忙
...全文
150 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiyun0112 2013-10-11
  • 打赏
  • 举报
回复
System.Timers.Timer t = new System.Timers.Timer(5000);//实例化Timer类,设置间隔时间为10000毫秒;
public main()
{


t.Elapsed += new System.Timers.ElapsedEventHandler(onMyTimerMain);//到达时间的时候执行事件;
t.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;

}
// 时间事件,定时触发
private void onMyTimerMain(object sender, System.Timers.ElapsedEventArgs e)
{
t.Enabled = false;
try
{
DoMaketPrice();
}
catch (Exception err)
{
txtMsLog.Text = err.Message;
}

t.Enabled = true;
}

*****************************************************************************
http://feiyun0112.cnblogs.com/

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧