草庐IT

计时表

全部标签

c# - 在 WPF 中使用计时器刷新 UI(使用 BackgroundWorker?)

我们在WPF中有一个应用程序,它通过ObservableCollection显示数据。5分钟后,我想刷新数据。我想我可以为它的Elapsed事件使用System.Timers.Timer对象,然后调用BackgroundWorker来调用开始工作。该方法在ViewModel类上。但是线程好像有问题。所以我尝试使用Dispatcher,但还是一样。这是我的(简化且未优化的)代码://////Initializesanewinstanceoftheclass.///publicApplicationController(){CreateDefaultTabs();Timertimer=ne

c# - 当系统处于休眠状态时,Windows 服务中的计时器如何运行?

假设我有一个Windows服务,它有一个设置为每6小时运行一次的计时器,我希望它每天触发4次。假设:0000、0600、12001800。(军用时间,同00:00等...)如果系统在1000进入休眠状态,并在1700唤醒,会发生什么?它会在1900再次触发吗,因为它的计时器还有2小时?它会立即触发(因为它错过了1200的约会),然后在2300再次触发(在当前时间上加上6小时?)我注意到当计算机进入休眠状态时,它不会触发OnPause或OnContinue方法。如果有人能阐明上述情况下系统的行为,那就太好了。干杯,并提前致谢。 最佳答案

C# 计时器在它们的间隔时间之前被触发

我们在从Windows服务使用System.Threading.Timer(.NET2.0)时遇到以下问题。大约有12种不同的计时器对象..每个计时器都有到期时间和间隔。这是正确设置的。据观察,在3到4小时后,计时器在它们的间隔结束之前开始发出信号。例如,如果计时器应该在4:59:59发出信号,它会在4:59:52发出信号,即提前7秒。谁能告诉我这种行为的原因是什么以及解决方案是什么?谢谢,斯瓦特语 最佳答案 好问题...原因如下:对于计算机来说,“计时”是一件棘手的事情……您永远不能依赖“间隔”来做到完美。有些计算机只会每14到1

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

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

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

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

c# - 设计时错误 - 'VisualState' 出现在至少两个命名空间中

我收到以下错误不明确的类型引用。名为“VisualState”的类型至少出现在两个命名空间“System.Windows”和“System.Windows”中。考虑调整程序集XmlnsDefinition属性。我没有直接引用这些程序集namespace中的任何一个,我正在执行以下操作:应用程序编译正常,只是在设计时抛出这些错误。VSM库中的一些其他类会发生这种情况。 最佳答案 听起来您正在尝试将为WPF3.5编译的WpfToolkit与WPF4一起使用。VisualStateManager现在是WPF4的一部分,因此如果您正在使用用

c# - Entity Framework 6 - 计时查询

我正在使用EntityFramework6,它具有出色的数据库拦截器功能,可以记录从应用程序发送到数据库的查询。但是,我正在努力为这些查询计时,我有一个长时间运行的查询,它返回数十万到数百万行,因此它需要大约6到15秒,具体取决于该查询将返回的数据量。EntityFramework正在返回一个SqlDataReader,因此我无法获得获取结果所需的确切时间。我想知道从发送查询到读取最后一行的完整执行时间。有什么办法可以做到吗。 最佳答案 这是我通常用于EF的记录器。publicclassEFLoggerForTesting:IDbC

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# - 如何在处理经过的事件时阻止计时器?

我有一个计时器,它不需要同时处理其经过的事件处理程序。但是处理一个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