Tag: timer

如何订阅已提升的活动并一起打印?

我一直在研究一个有3个类的程序,其中2个类具有以不同间隔重复的定时器,并且一旦定时器的一个“循环”完成,它就会引发一个带有字符串作为返回的事件。 第3类从其他两个计时器类订阅事件并将它们打印到屏幕。 它很棒! 但我的问题是它是单独打印它们。 让我们说第一个计时器类运行,然后每隔2分钟发出一次“hello”,另一个类“dog”每秒发出一次,每次发生一个事件时它都会将引发的事件打印到控制台。 我希望它反而每秒打印“hellodog”并将第一个计时器(你好)的值存储在一个私有字段或其他东西,所以它仍然打印到屏幕,即使计时器(较慢的2分钟计时器)还没有被解雇。 当2分钟计时器触发时,它会将值更新为新的值,并将新值打印到屏幕,直到它再次触发。 如果令人困惑,我会很乐意澄清。 有点难以解释。 namespace Final { public class Output { public static void Main() { var timer1 = new FormWithTimer(); var timer2 = new FormWithTimer2(); timer1.NewStringAvailable += new EventHandler(timer1_NewStringAvailable); timer2.NewStringAvailable += new EventHandler(timer2_NewStringAvailable); Console.ReadLine(); } static void timer1_NewStringAvailable(object sender, BaseClassThatCanRaiseEvent.StringEventArgs e) { var theString = e.Value; //To something with […]

定时器,单击,mousedown,mouseup事件不能一起工作

寻找一些问题的帮助我有 对不起,如果这个问题已被提出,我找不到类似的东西。 这个想法是当点击图片框时将图像更改为ON。 如果图片框保持2秒以上以打开新表格并将图片框保留为OFF。 但是,如果点击图片框然后保持2秒然后返回我需要图片框状态保持为ON。 这是我到目前为止所尝试的。 我相信为了正常工作我需要阻止MouseUp事件发生。 有什么方法可以在Tick发生时停止MouseUp吗? 有没有更简单/更好的方法来做到这一点? 任何帮助,将不胜感激。 private void time_HoldDownInternal_Tick(object sender, EventArgs e) { time_HoldDownInternal.Enabled = false; time_HoldDownInternal.Interval = 1000; form1show.Visible = true; } private void pb_pictureBoxTest_MouseDown(object sender, MouseEventArgs e) { mainMenuVariables.mousedown = true; time_HoldDownInternal.Enabled = true; } private void pb_pictureBoxTest_MouseUp(object sender, MouseEventArgs e) { mainMenuVariables.mousedown = false; //MessageBox.Show(“mouse up”); time_HoldDownInternal.Enabled = […]

ASP.NET Timer仅在调试模式下工作

我在更新面板中使用ajax计时器控件。 计时器应该每秒用当前日期时间更新标签。 protected void Timer1_Tick(object sender, EventArgs e) { Label1.Text = DateTime.Now.ToString(); } 在调试模式下一切正常但是当我运行没有调试器的站点(CTRL + F5)或者我将站点部署到我的服务器时,计时器不会打勾。 但是当我在web.config中添加“debug = true”时,一切正常。 甚至在我的服务器上。 Internet Explorer在ScriptResource.axd中引发exception“对象不支持此操作”。 我该如何解决这个问题? 编辑:我想我已经解决了。 我不知道为什么但有两件事可以解决这个问题: 使用ScriptManager而不是ToolScriptManager 将ToolScriptManager与CombineScripts一起使用=“false” 如果这是一个错误,我不知道。 也许有人可以解释一下。

Mono中的C#FileStream – 文件共享冲突

我有一个使用Mono在Raspbian上运行的C#WinForms应用程序。 它有一个计时器。 当OnTimedEvent触发时,我检查是否可以独占访问我要上传的文件(以确保它已完成写入磁盘),然后尝试上传。 如果上传成功,我将文件移动到存档文件夹,否则我将其留在那里并等待下一个计时器事件。 连接到Internet时没有问题,但是当我测试没有并且我的上传失败时,第二个OnTimedEvent在检查同一文件是否准备就绪时会再次出现exception。 我正进入(状态 : Error message: ***Sharing violation on path ‘path’ ***HResult: ***-2147024864 检查文件是否准备好的方法: public static bool IsFileReady(string filename) { // If the file can be opened for exclusive access it means that the file // is no longer locked by another process. try { var inputStream = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.None); […]

是否可以将异步事件处理程序附加到System.Timers.Timer?

我已经在这里阅读了SOpost和文章这里我有一个计时器事件,每隔一段时间触发一次,我想在处理程序内部进行一些异步处理,所以有类似的事情: Timer timer = new Timer(); timer.Interval = 1000; timer.Elapsed += timer_Elapsed; // Please ignore this line. But some answers already given based on this line so I will leave it as it is. timer.Elapsed += async (sender, arguments) => await timer_Elapsed(sender, arguments); private async Task timer_Elapsed(object sender, ElapsedEventArgs e) { await Task.Delay(10); } 上面的代码编译和工作。 […]

Windows 8.1中的计时器 – 如何模拟Timer(TimerCallback)构造函数?

我正在将一个使用System.Threading.Timer的现有.NET类库移植到面向Windows 8.1的Windowsapp store应用。 Timer类是可用的,但是相应的.NET Framework Timer似乎缺少一些选项。 特别是,Windows Store版本中只有两个构造函数可用: public Timer(TimerCallback callback, Object state, int dueTime, int period); public Timer(TimerCallback callback, Object state, TimeSpan dueTime, TimeSpan period); .NET Framework包含此附加构造函数: public Timer(TimerCallback callback); 根据MSDN文档,将dueTime和period为Timeout.Infinite并dueTime Timer对象本身。 试图替换单个参数构造函数,我“天真地”试图将Timer对象传递给其中一个Windows 8.1构造函数,如下所示: Timer t; t = new Timer(MyCallback, t, Timeout.Infinite, Timeout.Infinite); // WILL NOT WORK!!! 但当然这只会产生编译错误 使用未分配的局部变量’t’ Timer类中也没有State setter或SetState方法,因此在构造之后不能设置state 。 我能做些什么来完全模仿完整框架的Timer(TimerCallback)构造函数?

使用Timer进行会话超时

我想用计时器超时,我正在实施一个电子商务项目,我需要当用户在购物车中添加第一个产品时,计时器将启动并且用户在购物车中添加更多产品但是用户没有检查购物车产品。购物车会话超时的特定时间(购物车为空)。 如何实现这一点。

如何在JINT Javascript端创建计时器

我正在使用JINT( https://github.com/sebastienros/jint )开发一个C#项目,我需要在我的JS上创建一个计时器,这样每次定时器时间设置结束时它都可以在我的javascript上执行一个函数。 我怎么能做到这一点? 我使用了setInterval或setTimeout函数,但似乎它们不是JINT的一部分,因为它基于ECMASCRIPT,并且这些函数不是本机的。 谁能告诉我怎么做到这一点? 谢谢!!

实时更新大量对象(1,000+)的最有效方法

迭代具有大量项目(1,000或更多)的集合并实时更新项目属性的最有效方法是什么? 目前,我的程序使用WriteableBitmap在canvas上为集合中的每个对象绘制一个图像(虽然我没有看到它与简单的椭圆之间的性能有任何差异)并将其移动到屏幕上。 我试图暂时保持逻辑尽可能简单。 [Magic] public class Entity : ObservableObject { public Entity() { Height = 16; Width = 16; Location = new Vector(Global.rand.Next(800), Global.rand.Next(800)); Image = Global.LoadBitmap(“Resources/Thing1.png”); } public int Height { get; set; } public int Width { get; set; } public Vector Location { get; set; } public WriteableBitmap Image { get; set; […]

Java中C#中的Timer等价?

在C#中,计时器将在启用时以特定间隔触发事件。 我如何用Java实现这一目标? 我想让一个方法以特定的间隔运行。 我知道如何在C#中实现这一点,而不是Java。 C#中的代码: private void timer1_Tick(object sender, EventArgs e) { //the method } 我尝试了Timer和TimerTask ,但我不确定该方法是否会在其他方法运行时运行。