I figured out how to put the UI on a separate thread than the functionality.

This is what you do in the MyForm.cs class. Begin invoke on the Dispatcher.
You must create a DELEGATE -> ClickDelegate and cast the new delegate as that.
[ThreadStatic] Class Attribute
http://msdn.microsoft.com/en-us/library/system.threadstaticattribute(vs.80).aspx