Una limitación de la implementación de protobuf-net es que llama a las secuencias subyacentes de forma síncrona. Al no ofrecer una API asíncrona, p. BeginSerialize/EndSerialize o un equivalente de TPL, estamos obligados a atar un hilo esperando la E/S de flujo sincrónico.serialización de protobuf asincrónica
¿Hay algún plan para ofrecer métodos asincrónicos en protobuf-net o, alternativamente, formas creativas para solucionar este problema?
¿Hay algún flujo de almacenamiento intermedio genérico que bloquee la asincronía? Actualmente estoy usando un enfoque MemoryStream, pero quiero deserializar parcialmente el encabezado del archivo (como en http://stackoverflow.com/questions/13342318/deserialize-part-of-a-binary-file) y no tengo forma de saber cuántos bytes necesito para recuperar Async, solo el deserializador lo sabe. – tozevv
@tozevv sync-over-async? que * puede * ser bastante peligroso, para ser honesto. ¿Cuál es la fuente de datos subyacente aquí? ¿Qué fuente asíncrona proporciona los datos? Una secuencia de sincronización sobre sincronización podría probablemente * escribirse * fácilmente. –
Sí, no tengo ningún problema con la escritura. Estoy leyendo un archivo con un encabezado y un cuerpo. Si sé que el tamaño del encabezado es trivial para leer el encabezado (ReadAsync) primero y solo si el encabezado cumple una condición determinada, lea el resto del cuerpo también Async. Tanto el encabezado como los contenidos están siendo serializados usando su excelente (gracias por eso) implementación de búferes de protocolo. – tozevv