2008-10-13 13 views
6

ipler. Bağlama için harikalar ve kullanıcı arayüzünde süper hızlılar.Microsoft ObservableCollection ile büyük bir fikrim yoktu gibi görünüyor

Ancak Dispatcher Konuya sen oynamak istiyorum her zaman bir bağlam anahtarı gerektiren çok biraz gibi görünüyor. Bunları kullanmak için en iyi uygulamaları bilen var mı? Bir ICollection iş katmanında bir ileti nesnesi olarak doldurmak mı, sonra UI katmanındaki ObservableCollection'ı oluşturmak mı? Daha sonra kullanıcı arayüzündeki koleksiyonlarla ilgili güncellemeleri nasıl ele alıyorsunuz?

cevap

2

gerçekten uygulamanız için bir darboğaz bu kadar neden UI iş parçacığı üzerinde ObservableCollection güncellenmesi mı? Değilse, UI iş parçacığı üzerinde güncelleyerek sopa. Gerçekten sen Dispatcher'ın ile bir şeyler çalıştırdığınızda oluyor bir bağlam anahtarı değil, Hatırla - yerine, sadece işletim sistemi bağlamı zaten bir noktada geçer zaten çalışan iplik UI iş parçacığı, bir iş gönderecekseniz . UI iş parçacığı, gönderdiğiniz işi bir iç sıradan çeker ve yürütür. Bağlamı kendin değiştirmeye zorlamıyorsun.

+0

Size "o zaman uyumlu bir işlemdir sürece" ne anlama geliyor, bu her zaman iplikten OS hamle Konuya bağlam anahtarı olan bir senkron çalışma – Amsakanna

+0

olmadıkça bir bağlam anahtarı değil mi? –

1

Sen (Windows Forms gibi) WPF eski güzel BackgroundWorker da kullanabilirsiniz. WPF'nin diş çekme modeline uyarlanacak ve güzel bir soyutlama sağlayacaktır.