jjzjj

c# - c#中For循环的时间延迟

我如何在一定的旋转后在循环中使用时间延迟?假设:for(inti=0;i我希望每8次旋转后延迟1秒。 最佳答案 有很多方法可以做到这一点:方法一:极其糟糕:忙等待:DateTimetimeToStartUpAgain=whatever;while(DateTime.Now这是一件可怕的事情;操作系统会假设你正在做有用的工作,并会分配一个CPU来做除了旋转之外的任何事情。永远不要这样做,除非您知道自旋只会持续几微秒。基本上,当您这样做时,您已经雇用了某人为您看表;那不经济。方法二:非常糟糕:休眠线程。让线程休眠也是一件可怕的事情,但没

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# - 需要对象引用才能访问非静态成员

我有一个计时器,我想放置计时器回调进入单独的功能,但是,我得到这个错误。Anobjectreferenceisrequiredtoaccessnon-staticfield,method,orproperty''...如果我将这些回调声明为委托(delegate)事件并且成员变量为静态,它工作正常。我应该这样吗?classMainClass{privateTimer_timer=null;privateTimeSpan_millisecs;publicstaticvoidMain(string[]args){Application.Init();MainWindowwin=newMai

c# - 单元测试 system.timers.timer

我一直在阅读有关使用计时器和线程进行单元测试的问题。我发现了有关单元测试system.threading.timers的SO问题,但我需要对system.timers.timer进行单元测试,而包装类似乎无法正常工作。我只需要知道如何模拟计时器和/或系统时间,以便对其进行单元测试。我似乎无法在谷歌上的任何地方找到这个。编辑和更新:这是有道理的,如果我通过如下包装提取计时器,我可以生成一个计时器并使用模拟将其替换为不同的计时器。相关的部分是获取我在运行时注入(inject)的计时器(原始的,而不是模拟的)并测试它的已用事件代码。 最佳答案

c# - 使 System.Threading.Timer 无效会停止吗?

如果我有一个活跃的System.Threading.Timer我将它设置为null,它停止了吗?我意识到调用.Dispose()更合适,但我想要问题的答案。publicclassFoo{privateSystem.Threading.Timer_timer;publicFoo(){//initializetimer}publicvoidKillTimer(){_timer=null;}}更新:经过反复讨论是否将对System.Threading.Timer的单个引用设置为null确实会导致停止它表明没有挥之不去的引用,例如事件列表,因为线程计时器接受单一回调并且不公开事件。如果GC收集

c# - WPF 进度条在几条之后停止

在我的WPF应用程序中,我必须在计时器滴答事件中显示进度条进度,我如下编写,System.Windows.Forms.Timertimer;publicMainWindow(){timer=newSystem.Windows.Forms.Timer();timer.Interval=1000;this.timer.Tick+=newSystem.EventHandler(this.timer_Tick);}加载事件如下privatevoidWindow_Loaded(objectsender,RoutedEventArgse){progressBar1.Minimum=0;progre

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/