We have got a scenario where we show two forms in one WinForms app (.NET 4.0) next to each other. Changes in one form should trigger changes in the other form. Say contact A is loaded in one form, then the other form should show the contact details of the newly selected contact. These changes to the GUI can take a little bit as lots of data is loaded into grids for example.
Ideally I would like to update one form without blocking the other form at all.
I tried using a background worker and let the GUI-update-work happen in the dowork (via InvokeRequired) or alternatively the completed event, but to no avail: the work updating the GUI in one form seems to block any events in the other form - as I said - it's mostly GUI work that is taking up the time, not stuff like complex calculations that can be done in the background.
Is that to be expected that I can't update one form without the other being blocked? Is there any solution around it? (I have read a little bit about the async keyword of .net 4.5 - would that behave the same for example?)
Any ideas are welcome!