ProtocolPirate
Programmer
In a background worker threads are MTA, while UI threads must be STA. Attempting to instantiate a form class in a background worker throws an exception, so invocation of a delegate is required.
My problem is that I have encapsulated all of my twain driver code into a plain class with no form which I instantiate in the background worker. If the scanner is not loaded I need to display a simple dialog, so I created a delegate on the main form, but when I call My.Forms.Form1.myDialogDelegate.Invoke(), the delegate reports that it's apartment state is MTA and it still will not display a dialog.
How can I force a delegate call to execute in an STA thread?
My problem is that I have encapsulated all of my twain driver code into a plain class with no form which I instantiate in the background worker. If the scanner is not loaded I need to display a simple dialog, so I created a delegate on the main form, but when I call My.Forms.Form1.myDialogDelegate.Invoke(), the delegate reports that it's apartment state is MTA and it still will not display a dialog.
How can I force a delegate call to execute in an STA thread?