Tag: timer

c#中的定时器初始化和竞争条件?

我在Richter的书上看到了这段代码: 下面的代码演示了如何让线程池线程调用立即启动的方法,然后每隔2秒调用一次: /*1*/ internal static class TimerDemo /*2*/ { /*3*/ private static Timer s_timer; /*4*/ public static void Main() /*5*/ { /*6*/ Console.WriteLine(“Checking status every 2 seconds”); /*7*/ // Create the Timer ensuring that it never fires. This ensures that /*8*/ // s_timer refers to it BEFORE Status is invoked by a thread pool thread […]

WinRT替换System.Environment.TickCount

System.Environment.TickCount的WinRT替换是什么?

C#股票代码的异步任务

我一直在努力学习有关异步任务和线程的更多信息,但却没有取得很大进展。 我正在尝试加载一个“引擎”类型的线程,该线程将在启动时在后台运行,并且能够访问UI线程以更新变量,而无需挂起UI线程。 在下面的代码中,调用Engine,并创建一个Ticker对象,它保存名为Last的(Litecoin / USD)的当前值,还包含其他几个有用的值。 此代码成功将当前值分配给label1.text。 我不一定需要代码,但我会采用什么方法在后台每秒创建一个ticker对象,并使用每个新的Ticker对象值更新UI线程。 这对背景工作者来说是个好例子吗? private void Form1_Load(object sender, EventArgs e) { Engine(); } private void Engine() { Ticker ltcusd = BtceApi.GetTicker(BtcePair.LtcUsd); label1.Text = “LTC/USD:” + ltcusd.Last; } 编辑:如果我执行以下操作,由于跨线程操作尝试(UI线程中的label1),label1抛出InvalidOperationException。 private void Form1_Load(object sender, EventArgs e) { var t = Task.Factory.StartNew(() => Engine()); t.Start(); } private void Engine() { while (true) { Thread.Sleep(1000); […]

System.Windows.Forms.Timer没有触发

我想使用System.Windows.Forms.Timer来确保在我正在创建的excel插件的UI线程上触发事件。 我按如下方式构建计时器: private System.Windows.Forms.Timer _timer; private void ThisAddIn_Startup(object sender, System.EventArgs e) { Debug.WriteLine(“ThisAddIn_Startup:” + Thread.CurrentThread.ManagedThreadId); _timer = new System.Windows.Forms.Timer(); _timer.Tick += new EventHandler(TimerEventHandler); _timer.Interval = 500; } 计时器由我正在使用的库中的COM事件触发: private void OnEvent() { _timer.Start(); } 然后我希望_timer在_timer时调用以下方法: public void TimerEventHandler(object sender, EventArgs args) { _timer.Stop(); Debug.WriteLine(“Tick: ” + Thread.CurrentThread.ManagedThreadId); } 据我所知,当我在Addin线程中创建计时器时,即使它是从另一个线程启动的(在这种情况下是COM事件),它应该触发它创建的线程,即插件线程。 但是,这不会发生。 我已经在我过去编写的RTDServer实现了这个确切的机制( 如Kenny Kerr所述 ),并且它按预期工作,但此场景中的_timer永远不会_timer 。 […]

C#5和异步​​计时器

是否有一个新的Timer API允许我这样做? await timer.wait(500); 基本上,要睡眠X ms然后恢复执行其余function

在Windows服务中运行的线程中最终不会执行

任何人都可以解释为什么这个finally块没有被执行? 我已经阅读了关于何时期望最终阻止不被执行的post,但这似乎是另一种情况。 此代码需要TopShelf和log4net。 我正在运行.net 4.5 我想它必须是Windows服务引擎启动未处理的exception,但为什么它在finally块完成之前运行? using log4net; using log4net.Config; using System; using System.Threading; using Topshelf; namespace ConsoleApplication1 { public class HostMain { static void Main(string[] args) { HostFactory.Run(x => { x.Service(s => { s.ConstructUsing(name => new HostMain()); s.WhenStarted(tc => tc.Start()); s.WhenStopped(tc => tc.Stop()); }); x.RunAsLocalSystem(); x.SetServiceName(“TimerTest”); }); } public void Stop() { LogManager.GetLogger(“MyLog”).Info(“stopping”); } […]

安排计时器每月执行一次 – C#

我需要每月一次从SQL Server向MySQL传输一些数据。 我已经完成了这个转移的东西,但我不知道(我还没有在互联网上找到)如何设置一个计时器,每个月在特定日期执行此转移。 我不想仅以毫秒为单位设置计时器间隔,因为天数从一个月到另一个月不等。 任何帮助表示赞赏……

连接消失时超时。 请帮助我

我想把我的代码暂停一下。 当文件被下载并且我没有上网时,它会计入60秒,如果连接没有返回,则会给出一条消息。 这是代码: string novoNome; novoNome = strlocal + “\\” + zipNome; using (WebClient wcDownload = new WebClient()) { try { if (!Directory.Exists(strlocal)) { Directory.CreateDirectory(strlocal); } #region comunicação para download //string saida; // cria uma requisição do arquivo para download webRequest = (HttpWebRequest)WebRequest.Create(url); webRequest.ReadWriteTimeout = 60000; webResponse = (HttpWebResponse)webRequest.GetResponse(); //Perguntar o tamanho do arquivo Int64 […]

WPF C# – 定时器倒计时

如何在我用WPF C#编写的代码中实现以下内容? 我有一个ElementFlow控件,我在其中实现了一个SelectionChanged事件,当控件的项目选择发生变化时(根据定义)触发特定事件。 我希望它做的是: 启动计时器 如果计时器达到2秒,则启动一个MessageBox说(例如,“Hi there”) 如果在计时器达到2秒之前选择发生变化,则应重置计时器并重新开始计时。 这是为了确保只有在2秒内选择没有改变时才会启动冗长的操作,但我不熟悉WPF的DispatcherTimerfunction,因为我更了解Windows窗体的正常计时器。 谢谢, S.

如何在WPF中使DispatcherTimer事件更顺畅?

在我的WPF应用程序中,用户按下按钮以启动平滑旋转的3D模型,并按下按钮以停止旋转。 为此,我创建了一个DispatcherTimer: DispatcherTimer timer = new DispatcherTimer(); timer.Tick += new EventHandler( timer_Tick ); timer.Interval = new TimeSpan( 0, 0, 0, 0, 30 ); 当按下按钮时,我调用timer.Start() ,当按钮松开时,我调用timer.Stop() 。 timer_Tick函数改变模型的旋转: void timer_Tick( object sender, EventArgs e ) { spin = ( spin + 2 ) % 360; AxisAngleRotation3D rotation = new AxisAngleRotation3D( new Vector3D( 0, 1, 0 ), […]