2011-04-17 16 views

Respuesta

4

Internamente BufferManager.CreateBufferManager devuelve una instancia de WrappingBufferManager que emplea ninguna forma de control de concurrencia, pero envuelve varias instancias de SynchronizedPool<T> que emplean bloqueo interno cuando Take() ing un nuevo tampón. Por lo tanto, a juzgar por la simplicidad de WrappingBufferManager, es seguro suponer que cualquier bloqueo de su parte sería redundante, y la clase devuelta es en realidad segura para subprocesos.

0

He experimentado problemas con el hilo con BufferManager. Creé un codificador de mensajes personalizado en WCF y, según mi observación, no siempre está garantizado que se cree un administrador de buffer para cada llamada. Por lo tanto, los bytes se reutilizan/devuelven mediante otros subprocesos, lo que daña mis datos.

Por lo tanto, para responder a su pregunta ... No, son NOT. Como está reutilizando la misma instancia, no se garantiza thread-safe.

Cuestiones relacionadas