2011-05-02 18 views
9

Tôi đang phát triển một khung ứng dụng sẽ được Silverlight sử dụng ở phía máy khách và .NET 4 ở phía máy chủ. Bên trong, khung công tác có cấu trúc dữ liệu từ điển và hàng đợi trong đó nhiều luồng sẽ truy cập đồng thời vào các bộ sưu tập.Lớp sưu tập chủ đề an toàn nào có sẵn trong Silverlight 4?

Ở phía máy chủ, tôi muốn sử dụng các lớp ConcurrentDictionaryConcurrentQueue có sẵn trong không gian tên System.Collections.Concurrent. Những lớp học tuy nhiên không được thực hiện trong Silverlight 4.

Hai cách tiếp cận tôi đang xem xét là:

  1. Decompile các ConcurrentDictionary và ConcurrentQueue lớp học và thực hiện chúng trong một thư viện lớp Silverlight . Đây sẽ là phạm vi sử dụng không gian tên System.Collections.Concurrent.
  2. Triển khai các lớp sưu tập an toàn chủ đề tùy chỉnh tôi cần trong thư viện được chia sẻ (hoặc tìm kiếm giải pháp an toàn chủ đề Silverlight ) có thể được sử dụng ở cả máy chủ và phía máy khách.

Cách tiếp cận đầu tiên sẽ cho phép tôi chỉ thực hiện các cấu trúc dữ liệu Silverlight mà tôi cần, nhưng tôi lo lắng về việc giới thiệu sự chênh lệch giữa thực hiện Silverlight của tôi và các lớp học tập đồng thời thực hiện trong .NET 4.

Thứ hai cách tiếp cận sẽ cung cấp một triển khai đồng bộ đồng nhất cả phía máy khách và phía máy chủ, nhưng cảm thấy như tôi sẽ tái phát minh ra bánh xe.

Dường như việc triển khai các lớp học ConcurrentDictionaryConcurrentQueue trong Silverlight sẽ rất khó, nhưng đã có thư viện được chấp thuận tốt về các lớp thu thập chủ đề an toàn cho Silverlight chưa?

+0

Chỉnh sửa thẻ vì điều này vẫn áp dụng trong SL5. –

Trả lời

6

Hãy thử điều này: http://ch.codeplex.com/

+0

Dự án đó trông tuyệt vời, nhưng nó dường như không có triển khai 'ConcurrentQueue'. Hình như một số mã đẹp mặc dù - Tôi chắc chắn sẽ có một nguồn đọc. –

+0

đây là dự án đã lỗi thời, không bao gồm ConcurrentQueue. Dường như nó bị bỏ rơi kể từ khi phát hành MS của System.Collections.Concurrent cho .net4 Vì vậy, câu hỏi vẫn mở. Có thực hiện tốt ConcurrentQueue cho SL5? Đối lập, bạn đã thành công với việc hoàn thành? –

+0

Biên dịch ngược trong khi về mặt lý thuyết có thể là khó khăn hơn tôi nghĩ ban đầu (sử dụng các lớp BCL không có sẵn trong Silverlight). Nó có thể dễ dàng hơn để viết các lớp sưu tập từ đầu, nhưng tôi không có thời gian để thử. – Oppositional

2

Thư viện lớp cho Mono bao gồm việc triển khai của các bộ sưu tập đồng thời khác nhau, và được cấp phép theo giấy phép MIT rất dễ dãi.

Các vấn đề liên quan