我一直在尋找所有的答案,這個問題,但似乎無法找到滿意的答案。也許這裏有人可以啓發我。的SynchronizationContext和InvokeRequired
我有BindingList<T>
後代,爲了提高UI線程上的改變事件存儲到一個SynchronizationContext
對象的引用。現在
,它也有可能是這個BindingList<T>
創建和UI線程,而不是一個後臺線程上使用。我如何檢查這個沒有InvokeRequired
這樣的房產對我有用?在UI線程上調用SynchronizationContext.Send
有什麼後果?
你最好檢查一下。在工作線程上創建綁定列表時,SynchronizationContext.Current將爲空。 Send()否則立即在UI線程上執行。 – 2011-03-28 22:37:54
我將SynchronizationContext傳遞給列表,因爲它綁定到了UI。當我引發ListChanged事件時,我會在使用它之前檢查是否有一個SynchronizationContext。 – Dan 2011-03-29 01:53:14