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

如何在这么多秒后调用方法?分享

时间:2023-04-10 12:08:35 C#

这么多秒后如何调用方法?在我的项目中,我希望能够在3分钟后调用一个方法。没有“主循环”可言,所以我不能用秒表继续检查是否已经过了3分钟。我能想到的唯一其他解决方案是间隔3分钟的Timer对象,但这看起来相当混乱,因为它只会在3分钟延迟后调用一次。谢谢阅读。编辑:忘记提及。这是一个服务器应用程序,所以我不能暂停那个线程的执行,因为其他的东西必须同时处理。此外,这种定时器机制不会被隔离。一次可能有数百甚至数千个并发计时器。我真的相信您对Timer对象的想法是正确的方法。听起来您很熟悉如何使用它-但这里有一个示例:aTimer=newSystem.Timers.Timer(1000*60*3);aTimer.Elapsed+=newElapsedEventHandler(OnTimedEvent);aTimer.Enabled=true;http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx如果您有成百上千个这样的计时器,一些程序就可以完成这项工作。您真的应该研究一下quartznet许多并发计时器的性能不如我所经历的那样,quartznet可以。如果你真的想在你的应用程序中有这些计划任务,也许这篇文章会给你一些想法。.NET的任务计划程序类库使用计时器。如果您创建一个1000计时器,虽然会有轻微的开销,但并不多。计时器将完成其工作并在3分钟后触发事件。此外,如果您希望您的代码每3分钟重复一次,则可以使用计时器。定时器不是成百上千的好的解决方案,因为定时器是一种有限的资源。所有方法都是从同一个应用程序调用的吗?如果是这样,我会创建一个带有日期时间和动作的小存根类,并向要调用的方法和目标时间添加一个委托。然后在后台线程循环遍历列表并适当地调用委托(显然删除它们)另一种解决方案是为每个要调用的方法执行类似QueueUserWorkItem的操作,并在适当的时间成为线程中的第一件事休眠直到应该调用该方法。对于所有解决方案(我的和其他解决方案),请注意在与GUI交互时必须执行的任何编组,或者可能需要执行的任何锁定以避免线程并发问题在尝试了几个选项后,此方法不是自触发的。所以我使用Javascript来解决与下面相同的问题。以上就是C#学习教程:过了这么多秒怎么调用方法?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: