Cố gắng làm theo các hints laid out here, nhưng cô không đề cập đến làm thế nào để xử lý nó khi bộ sưu tập của bạn cần phải trả về một giá trị, như vậy:Trả lại các đối tượng từ một chuỗi khác?
private delegate TValue DequeueDelegate();
public virtual TValue Dequeue()
{
if (dispatcher.CheckAccess())
{
--count;
var pair = dict.First();
var queue = pair.Value;
var val = queue.Dequeue();
if (queue.Count == 0) dict.Remove(pair.Key);
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, val));
return val;
}
else
{
dispatcher.BeginInvoke(new DequeueDelegate(Dequeue));
}
}
Điều này rõ ràng sẽ không làm việc, bởi vì dispatcher.BeginInvoke
không trả lại bất cứ điều gì. Tôi phải làm gì bây giờ?
Bài đăng trên blog đó là 4 tuổi và họ vẫn chưa sửa nó: ( – mpen
+1 Tôi sẽ quan tâm để xem câu trả lời cho câu hỏi này bởi vì tôi cần phải làm điều gì đó tương tự trong dự án của riêng mình. –