I don\'t know how to put this but I\'ll try my best.
I have a Windows form application which uses a webcam to take a photo of a user which works fine, I\'m using the
Image image = (Image)pictureBox.Invoke ((Func<Image>) delegate { return pictureBox.Image; });
Take a look at the SynchronizationContext class; it allows you to dispatch work back on the main (UI) thread in a manner that is agnostic of how that mechanism actually works (and therefore works with WinForms and WPF). Therefore you don't need to have a reference to a Control to call Invoke on.
It is what BackgroundWorker uses behind the scenes (you may also be able to use BackgroundWorker
, depending on what you're trying to do, which is slightly easier to work with).