brothers in code.
I’m trying to make my WinForms app multi threaded. In DoWork of my background worker I’ve got a method which changes few controls using MethodInvoker delegate. My question is if I have to invoke every control every time I want to change it from another thread or maybe there is some kind of container of controls which I can invoke to avoid multiple invoking certain controls?
Invoking means scheduling your code to run on the thread that owns the controls, which in all straightforward cases would be the very same thread for all of your controls. So while you do have to invoke every time you want to interact with a control, you can in practice “pool” as many interactions as you wish together and only invoke once for the whole piece (doing so will be more performant).
If you want to “hide” the invocations you ‘d have to write a class that, when triggered, would detect changes to its properties and use
Invokeon code that interacts with your controls in a manner dependent on these properties. So the workflow would be: