We have tried to direct the calls to the controll directly as well.Did not help at all.
The other part we haven't since that would cause an endless loop unless we made it into 2 methods.
We haven't gotten around to that since we ended up being a bit drastic. As such we cleaned up alot of code.
What seems to have removed it that our calls now "travel" throug less layers.
As before it was pritty much
1. Example: Call from service
WCF ---- event ----> PM ---- event ----> Form
||
||
refresh components
||
\/
DA <---- call ---- PM <---- call ----- Component
2. Examble: Call from service watcher
SW ---- event ----> PM ---- event ----> Form
||
||
refresh components
||
\/
DA <---- call ---- PM <---- call ----- Component
Both the WCF Callback and the ServiceWatcher would make there call on different threads, within the form and components the previous code applies for both components and form.
What seems to have removed the issue is a change in that call stack. so it is more like:
1. Example: Call from service
WCF/SW ---- event ----> PM
||
||
refresh
||
\/
DA <---- call ---- PM
||
\/
PM ---- event ----> Form
||
||
refresh components
||
\/
PM <---- call ----- Component
As a side effect things also become more clear cut and gennerally better code.
So thats all good, but i have no idea why it failed before with the more direct aproach.
I Will mark this as an awnser to close the thread since we don't have the issue anymore even though it can't really help others if they come in the same situation i belive. :S