<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><a href="https://github.com/mono/mono/commit/38bdbad5071487a11f4330077c383375dce39840">https://github.com/mono/mono/commit/38bdbad5071487a11f4330077c383375dce39840</a><br></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><br></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">This change introduced a OneIdlePerThread unit test that has never worked for me.  All I get is the following exception:</div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><br></div><div><font face="times new roman, new york, times, serif">System.InvalidOperationException : Cannot call Invoke or BeginInvoke on a control until the window
 handle is created</font><br></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><br></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">Patch #18 fixes that by creating a Form type that calls CreateHandle() in its constructor.  But now the unit test hangs hard in Mono!</div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><br></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">I created a project with the unit-test, and when run in Mono, it hangs hard; selecting "Run -> Pause" in MonoDevelop hangs MonoDevelop, and the debugged process chews up 100% of the CPU time</div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><br></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">I ran the project in .NET,
 and instead of a hang, I get this exception:</div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><br></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">System.InvalidOperationException: Cross-threaded operation not valid: Control '' accessed from a thread other than the thread it was created on.</div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><br></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">Patch #18a fixes that by moving the creation of form2 into the right thread.  Now the unit test passes.</div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><br></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">So patch #18a can be checked in, but note that patch #18 demonstrates that Mono hangs in
 a situation where .NET throws an exception.</div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><br></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; ">Steven Boswell</div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 12pt; "><br></div></div></body></html>