On 07.01.2016 22:24, George, Glover E ERDC-RDE-ITL-MS wrote:
Hi all,

We’re currently porting a Windows Forms Application to Mono, and have
generally had great success.  However, we have now hit a critical
decision point, and were hoping for some guidance on the best route
forward.   If we don’t have X11, mono fails to run Windows Forms code
with the following error:

From: System.Windows.Forms, at: Void .ctor(), Error Message: The type
initializer for
'System.Windows.Forms.WindowsFormsSynchronizationContext' threw an
exception.

Question First: The main question I had for the Mono list is this.
Is it possible to have mono run Windows Forms code without trying to
open X11 (I.e. headless mode)?  What triggers mono to request an X11
display? Is it the project type?  Is it the call to an object that
inherits from a Windows Forms control?  I don’t need to see the form,
but if I’m using BackgroundWorkers, I need the form's event handler,
don’t I?


BackgroundWorker does not depend upon System.Windows.Forms, i.e.
it can use it headless.

The exception you're experiencing is caused by the synchronization
context set and used by WinForms.

Supposing that you don't need any kind of synchronization, you
may want to replace the synchronization context with a simple
one.

I don't know if the most simple one (System.Threading.SynchronizationContext)
would be enough or if you have to subclass it. Have a look
at its sources and at
System.Windows.Forms.WindowsFormsSynchronizationContext.

Robert

_______________________________________________
Mono-list maillist  -  Mono-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to