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 [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=79519 --- shadow/79519 2006-09-28 09:22:50.000000000 -0400 +++ shadow/79519.tmp.15590 2006-09-28 09:22:50.000000000 -0400 @@ -0,0 +1,63 @@ +Bug#: 79519 +Product: Mono: Class Libraries +Version: 1.1 +OS: GNU/Linux [Other] +OS Details: Slackware +Status: NEW +Resolution: +Severity: +Priority: Normal +Component: Windows.Forms +AssignedTo: [EMAIL PROTECTED] +ReportedBy: [EMAIL PROTECTED] +QAContact: [EMAIL PROTECTED] +TargetMilestone: --- +URL: +Cc: +Summary: Switching forms is not immediate on slow computers + +To reproduce this bug, you need two forms, each with a button. When you +click the button, BringToTop() of the other form is called. You when you +put these forms to the same location (so the button are also on the same +location), if you click continuosly on the button, the forms are switching. +But, if you click very quickly, sometimes you manage to click the button on +one form twice, before the other form shows up. + +The problem is that when you call Form.BringToTop, it should pause the +processing of windows messages until the new forms is shown. The same +happens with Form.Show, ShowModal and Hide. + +This bug is really difficult to reproduce. As far as I know it can be +reproduced only on Linux (I wasn't able to reproduce it on Windows). The +problem with this bug is that it appears only: + - on very slow computers (300 Mhz and below) + - or when the CPU load is very high + +I made a test case, that creates some threads to keep the processor busy. + +Steps to reproduce: +1) Run the attached program on Linux. +2) Click the "align" button. +3) The "start thread" button starts a thread (a simple while (true) { } ). +If you click it five times, it creates five threads. I can reproduce this +bug with five threads. If it doesn't work, try 10 threads, then 15. +4) Once the system is busy (application should work very slowly), start +clicking very quickly on the "button1" button. This button only shows +second form. On the second form, there is another button on the same place +that shows the first form. So by clicking rapidly, the forms shouls be +switching. +5) After 15-20 seconds, exit the program (you will need to kill it by +Ctrl-C or like that). +6) The program creates a file named "a.log". Every click on button1 on the +first form is logged as "1", every click on the button on the second form +is logged as "2". + +Expected results: +In the a.log, there should be a sequence of "12121212..." + +Actual results: +If you click quickly enough, you should see a "11" or a "22" string the +log. This is obviously a bug. + +Reproduce code: +-- see attachment -- _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
