We all know that UI controls must be updated from the same UI thread they belong to. That's why we use such things as Control.Invoke() or SynchronizationContext, etc. from our working threads.
I understand about message loops in UI threads, etc., but I still don't understand why I must update my UI only from the same thread?
I googled this question for half an hour and I also checked 3 of my WindowsForms and WPF books but I haven't found an answer.
I would like someone to explain it in details, I want to understand it really good.
Thank you in advance.