Descarga de datos en MemoryStream

blazor

Pregunta

Tengo una mesa de google y la descargo:

 Task<byte[]> _res = Http.GetByteArrayAsync(_webPath);

Entonces hago un Stream:

 Task<byte[]> _res = Http.GetByteArrayAsync(_webPath);

Y trabajar con esta corriente. Quiero analizar la mesa. En la aplicación Core de la consola .net, este método funciona bien, pero cuando lo uso en la aplicación blazor, no funciona.

 Task<byte[]> _res = Http.GetByteArrayAsync(_webPath);

Resultado

No tengo excepción.

Respuesta aceptada

El problema es que _res.Result bloquea el subproceso hasta que se completa la tarea, lo que resulta en un interbloqueo ya que blazor solo tiene un subproceso.

https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1.result?view=netframework-4.7.2

El acceso al acceso de obtención de la propiedad bloquea el subproceso de llamada hasta que se completa la operación asíncrona; es equivalente a llamar al método de espera.

await _res esperar la tarea con la await _res para que el hilo no se bloquee y pueda completar la tarea.




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué