“Though shalt not operate on a window from other than its creating thread.”

After wasting so much time developing a architecture that will update UIs from threads that did not create it and not thinking about the fact that MDI children should be created on the Same thread as their parent, I stumbled across the above saying :) .

Well if I had thought it through, the Window handle has to be valid on the main thread for it to be become a child. Hmm….

This article really explains this well
Wonders Of Windows Forms