[Mono-bugs] [Bug 77335][Maj] New - Timer events are not delivered by Application.DoEvents

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Mon Jan 23 19:59:00 EST 2006

Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by don at edvalson.net.


--- shadow/77335	2006-01-23 19:59:00.000000000 -0500
+++ shadow/77335.tmp.4202	2006-01-23 19:59:00.000000000 -0500
@@ -0,0 +1,49 @@
+Bug#: 77335
+Product: Mono: Class Libraries
+Version: unspecified
+OS Details: Windows XP
+Status: NEW   
+Priority: Major
+Component: Windows.Forms
+AssignedTo: peter at novonyx.com                            
+ReportedBy: don at edvalson.net               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+Summary: Timer events are not delivered by Application.DoEvents
+Please fill in this template when reporting a bug, unless you know what 
+you are doing.
+Description of Problem:
+Calling Application.DoEvents() does not cause timer events that should be 
+delivered to be delivered. Timers only work if the main message loop is 
+Steps to reproduce the problem:
+1. Start a timer
+2. Enter a loop in which you are alternating beween Application.DoEvents
+() and Thread.Sleep();
+3. Wait for the timer tick that never comes
+Actual Results: The timer tick event never fires
+Expected Results:For it to fire.
+How often does this happen? always
+Additional Information:
+I looked at the source code in XplatUIWin32.cs. The problem is because 
+the code in DoEvents is a simple windows message loop. It bypasses all of 
+the special code in GetMessage that handles faking mouse events and 
+timers. This special code needs to be called from both GetMessage and 
+from DoEvents. I will try to work out a fix, but I thought I should 
+report this first so someone else can fix it first if I can't

More information about the mono-bugs mailing list