[Mono-bugs] [Bug 387693] New: two Application.Run() loop does not finish after Form. Close()
    bugzilla_noreply at novell.com 
    bugzilla_noreply at novell.com
       
    Wed May  7 07:45:48 EDT 2008
    
    
  
https://bugzilla.novell.com/show_bug.cgi?id=387693
User atsushi at ximian.com added comment
https://bugzilla.novell.com/show_bug.cgi?id=387693#c325033
           Summary: two Application.Run() loop does not finish after
                    Form.Close()
           Product: Mono: Class Libraries
           Version: SVN
          Platform: i586
        OS/Version: openSUSE 10.3
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Windows.Forms
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: atsushi at ximian.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
The following code, based on #325033 but without Timer, exposes a bug inside
Application.Run() that the method keeps waiting for certain message:
--------
using System;
using System.Drawing;
using System.Threading;
using System.Windows.Forms;
class MainForm : Form
{
        public MainForm ()
        {
                Load += new EventHandler (MainForm_Load);
        }
        static void Main ()
        {
                Application.Run (new MainForm ());
                //Application.Run (new SplashForm ());
        }
        void MainForm_Load (object sender, EventArgs e)
        {
                Thread t = new Thread (new ThreadStart (Run));
                t.IsBackground = true;
Console.WriteLine ("1: " + Thread.CurrentThread.GetHashCode ());
                t.Start ();
Console.WriteLine ("1-2: " + Thread.CurrentThread.GetHashCode ());
                t.Join ();
Console.WriteLine ("1-3: " + Thread.CurrentThread.GetHashCode ());
                Close ();
Console.WriteLine ("1-4: " + Thread.CurrentThread.GetHashCode ());
        }
        static void Run ()
        {
Console.WriteLine ("2: " + Thread.CurrentThread.GetHashCode ());
                Application.Run (new SplashForm ());
Console.WriteLine ("2-2: " + Thread.CurrentThread.GetHashCode ());
        }
}
class SplashForm : Form
{
        public SplashForm ()
        {
Button b = new Button ();
b.Click += delegate (object o, EventArgs e) {
        Button_Click (o, e);
};
Controls.Add (b);
        }
        void Button_Click (object sender, EventArgs e)
        {
                Close ();
Console.WriteLine ("4: " + Thread.CurrentThread.GetHashCode ());
        }
}
--------
It stops printing debug strings after "4: 2" (or something other than "2").
-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
    
    
More information about the mono-bugs
mailing list