Estoy desarrollando un marco de aplicación que será utilizado por Silverlight en el lado del cliente y .NET 4 en el lado del servidor. Internamente, el marco tiene estructuras de datos de diccionario y de cola en las que varios subprocesos accederán a las colecciones al mismo tiempo.¿Qué clases de colección de subprocesos están disponibles en Silverlight 4?
En el lado del servidor, me gustaría utilizar las clases ConcurrentDictionary y ConcurrentQueue disponibles en el espacio de nombres System.Collections.Concurrent. Estas clases son sin embargo no implementadas en Silverlight 4.
Los dos enfoques que estoy considerando son:
- Descompilar las clases ConcurrentDictionary y ConcurrentQueue y a poner en práctica en una biblioteca de clases Silverlight . Estos se definirán utilizando el espacio de nombres System.Collections.Concurrent.
- Aplicar las clases de recolección compatibles con el proceso de encargo que necesito en un biblioteca compartida (o encontrar un fiable Silverlight flujos seguros implementación de la colección ) que puede ser utilizado tanto en el lado del servidor y el cliente.
El primer enfoque permitiría que yo simplemente poner en práctica las estructuras de datos de Silverlight que necesito, pero preocuparse por la introducción de las disparidades entre mi aplicación Silverlight y las clases de colección concurrentes implementadas en .NET 4.
La segunda El enfoque proporcionaría una implementación consistente de cobro simultáneo tanto del lado del cliente como del servidor, pero parece que estaría reinventando la rueda.
No parece que implementar las clases ConcurrentDictionary y ConcurrentQueue en Silverlight sería muy difícil, pero ¿ya existe una biblioteca bien adoptada de clases de colección de subprocesos seguros para Silverlight?
Edición de etiquetas, ya que esto todavía se aplica en SL5. –