当前位置: 首页 > 编程语言 > C#

在c#中每x秒执行一次操作y分钟分享

时间:2023-04-10 18:16:57 C#

C#学习教程:在c#中每x秒执行一个操作,持续y分钟我使用计时器运行它5秒,但如何将计时器限制为仅10分钟?非常感谢Andrea只需从使用的处理程序中捕获您想要停止和结束计时器的时间。这是一个示例(注意:我正在使用System.Threading.Timer计时器。为您正在做的事情选择合适的计时器。例如,如果您在Winforms中编写,您可能有一个System.Windows.Forms。Timerafter)publicclassMyClass{System.Threading.TimerTimer;System.DateTime停止时间;publicvoidRun(){StopTime=System.DateTime.Now.AddMinutes(10);计时器=newSystem.Threading.Timer(TimerCallback,null,0,5000);}privatevoidTimerCallback(objectstate){if(System.DateTime.Now>=StopTime){Timer.Dispose();返回;}//做你的工作.....}}你的计时器循环器看起来像这样:DateTimeendTime=DateTime.Now.AddMinutes(10);while(endTime将Y分钟除以X间隔以获得它需要运行多少次。之后,您只需要计算函数被调用的次数。在您的情况下,10分钟=600秒/5秒=120次调用需要。只需要一个计数器来跟踪您的函数被调用的次数。Timer.Stop()在Timer.Stop()之后。只需使用DateTime变量来跟踪它结束时应该发生的情况并在开始前设置它.在你的Elapsed事件处理程序上,检查信号时间是否小于结束时间。如果不是,则停止计时器。你可以计算函数被调用的次数,并创建一个递减计数器,在一段时间后取消订阅计时器滴答作响时间。或者您可以运行另一个带有滴答周期的计时器-10分钟,然后滴答,您可以取消订阅计时器并调用您的函数。注意开始时间。在每次通话中,测试currentTime+5秒>startTime+10分钟。如果是,请禁用定时器。我更喜欢这种只运行N个滴答声的方法,因为不能保证计时器在您喜欢的时候触发。现有世界时间的10分钟内可能有120个刻度。您可以设置两个计时器运行5秒,另一个运行10分钟,禁用第一个计时器您可以使用第二个计时器:所有内容在几分钟内共享,如果它对您有用并且您需要了解更多C#学习教程,希望大家多多关注---classProgram{staticvoidMain(string[]args){intinterval=5*1000;//毫秒intduration=10*60*1000;//毫秒intervalTimer=newSystem.Timers.Timer(interval);durationTimer=newSystem.Timers.Timer(duration);intervalTimer.Elapsed+=newSystem.Timers.ElapsedEventHandler(intervalTimer_Elapsed);durationTimer.Elapsed+=newSystem.Timers.ElapsedEventHandler(durationTimer_Elapsed);间隔时间.开始();durationTimer.Start();}staticvoiddurationTimer_Elapsed(objectsender,System.Timers.ElapsedEventArgse){inter(Timer.);durationTimer.Stop();}staticvoidintervalTimer_Elapsed(objectsender,System.Timers.ElapsedEventArgse){//调用你的方法}privatestaticSystem.Timers.TimerintervalTimer;私有静态System.Timers.TimerdurationTimer;本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处: