草庐IT

c# - 秒表与计时器 - 何时使用

请原谅我提出这个问题,但我似乎无法找到何时使用哪个的良好来源。如果您能用简单的术语解释它,将很高兴。此外,我面临着这样的困境:看,我正在编写一个简单的应用程序。我希望它显示耗时(hh:mm:ss格式或其他格式)。而且,能够“加快”或“减慢”其时间间隔(即加快速度,以便实时的一分钟等于应用程序中的一小时)。例如,在Youtube视频中(*不考虑我们可以跳转到视频的特定部分*),我们会在左下角看到观看该视频所花费的实际时间屏幕一角,但通过在选项菜单中导航,我们可以加快或降低视频速度。我们实际上可以看到时间以与速度因子一致的方式更新(比如,如果你选择两倍的速度,下面的计时器更新速度比正常快两

C# 如何暂停定时器?

我有一个C#程序,如果用户停止与程序交互,我需要在其中停止计时器。它需要做的是暂停,然后在用户再次激活时重新启动。我做了一些研究,发现有这样的命令:timer.Stop();和timer.Start();但我想知道是否有:timer.Pause();然后当用户再次激活时,它会从中断处继续,不会重新启动。如果有人可以提供帮助,将不胜感激!谢谢,弥迦 最佳答案 您可以通过使用.NET中的Stopwatch类来实现此目的。通过简单地停止和启动,您可以继续使用秒表实例。确保使用usingSystem.Diagnostics;vartimer

c# - 我可以将 Task.Delay 用作计时器吗?

我想每秒执行一些代码。我现在使用的代码是:Task.Run((Action)ExecuteSomething);ExecuteSomething()定义如下:privatevoidExecuteSomething(){Task.Delay(1000).ContinueWith(t=>{//Dosomething.ExecuteSomething();});}这个方法会阻塞线程吗?或者我应该在C#中使用Timer类吗?似乎Timeralsodedicatesaseparatethreadforexecution(?) 最佳答案 Tas

c# - Console.ReadKey 与带有计时器的 Console.ReadLine

以下代码是一个众所周知的示例,用于显示调试版本和发布版本之间的区别:usingSystem;usingSystem.Threading;publicstaticclassProgram{publicstaticvoidMain(){Timert=newTimer(TimerCallback,null,0,2000);Console.ReadLine();}privatestaticvoidTimerCallback(Objecto){Console.WriteLine("InTimerCallback:"+DateTime.Now);GC.Collect();}}如果您使用调试配置运行

c# - 为什么通过 timeBeginPeriod 增加定时器分辨率会影响功耗?

我目前正在用C#编写一个应用程序,我需要在其中触发大约1秒的计时器。每5毫秒。从一些研究来看,执行此操作的最佳方法似乎涉及p/调用timeBeginPeriod(...)来更改系统计时器的分辨率。它在我的示例代码中运行良好。我在LarryOsterman的MSDN博客thisentry中发现了一个关于使用此函数的有趣警告。:Adam:callingtimeBeginPeriodincreasestheaccuracyofGetTickCountaswell.usingtimeBeginPeriodisahideouslybadideaingeneral-we'vebeenactivel

c# - 如何在处理经过的事件时阻止计时器?

我有一个计时器,它不需要同时处理其经过的事件处理程序。但是处理一个Elapsed事件可能会干扰其他事件。我实现了以下解决方案,但感觉有些不对劲;似乎我应该以不同的方式使用计时器或在线程空间中使用另一个对象。计时器似乎最合适,因为我确实需要定期检查状态,但有时检查时间会比我的间隔时间长。这是解决这个问题的最佳方法吗?//membervariableprivatestaticreadonlyobjecttimerLock=newobject();privateboolfound=false;//elsewheretimer.Interval=TimeSpan.FromSeconds(5).

c# - 从 C# 中的不同线程启动计时器

您好,我已经解决了一些与计时器相关的问题。希望有人能帮忙..我有一个包含按钮的窗体当我点击那个按钮时,我启动了一个参数化线程Threadthread1=newThread(newParameterizedThreadStart(execute2));thread1.Start(externalFileParams);线程里面的代码执行的很好在这个线程的最后一行我启动了一个计时器.publicvoidexecute2(Objectob){if(obisExternalFileParams){if(boolean_variable==true)executeMyMethod();//thi

C# 5 和异步定时器

是否有新的TimerAPI允许我执行此操作?awaittimer.wait(500);基本上,休眠X毫秒,然后继续执行函数的其余部分 最佳答案 尝试使用awaitTask.Delay(500); 关于C#5和异步定时器,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/9746555/

c# - 将计时器添加到 Windows 窗体应用程序

我想添加一个计时器而不是一个自动开始的倒计时表格加载。开始时间应为45分钟,一旦结束,即达到0分钟时,表单应终止并显示一条消息。我该怎么做?语言:最好是C#。 最佳答案 更多细节:privatevoidForm1_Load(objectsender,EventArgse){TimerMyTimer=newTimer();MyTimer.Interval=(45*60*1000);//45minsMyTimer.Tick+=newEventHandler(MyTimer_Tick);MyTimer.Start();}privatevo

c# - 在 C# 中,我应该在哪里保存计时器的引用?

System.Threading.Timer的文档说我应该为它保留一个实时引用以避免它被垃圾收集。但是我应该在哪里做呢?我的main非常简单,我不知道在哪里保存引用:classProgram{staticvoidMain(){newSystem.Threading.Thread(myThreadStart).Start();newSystem.Threading.Timer(myTimerCallback,newMyStateObject(),0,5000);}}我考虑将引用保留在Program类的static字段中,假设static字段直到最后才被收集的应用程序。但我不确定这是最好的