[Mono-bugs] [Bug 577302] New: Hiding child form called with ShowDialog from thread fails to return control to parent

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Thu Feb 4 21:06:40 EST 2010


http://bugzilla.novell.com/show_bug.cgi?id=577302

http://bugzilla.novell.com/show_bug.cgi?id=577302#c0


           Summary: Hiding child form called with ShowDialog from thread
                    fails to return control to parent
    Classification: Mono
           Product: Mono: Class Libraries
           Version: unspecified
          Platform: x86-64
        OS/Version: Windows 7
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Windows.Forms
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: ryepdx at gmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: Development
           Blocker: ---


Created an attachment (id=340933)
 --> (http://bugzilla.novell.com/attachment.cgi?id=340933)
Demonstration code.

Description of Problem:
When a parent form creates a child form and displays the child form with
ShowDialog and the child form spawns a thread which then hides the child form,
control fails to return to the parent form.

Steps to reproduce the problem:
1. Create a form which creates another form somewhere in its code. Show the
form with ShowDialog.
2. From within the child form spawn a thread which calls Hide on the child
form. Control should return to the parent form, but instead execution in the
parent form never resumes.

The example code attached demonstrates this. Click the button on the child form
to launch the thread to hide the child form and see the effect for yourself.
Compare with what *should* happen based on the code in MyForm.cs.


Actual Results:
Execution in the thread which spawned the child form never resumes. Thus, given
the code:
childForm.ShowDialog();
MessageBox.Show("Hello world!");

"Hello world!" will never be shown.

Expected Results:
Execution in the thread which spawned the child form should resume. Given the
code:
childForm.ShowDialog();
MessageBox.Show("Hello world!");

"Hello world!" should be show after childForm closes itself via the thread it
spawns.

How often does this happen? 
Every time.

Additional Information:

-- 
Configure bugmail: http://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