Download di dati in MemoryStream

blazor

Domanda

Ho un google table e lo scarico:

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

Quindi faccio un flusso:

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

E lavorare con questo flusso. Voglio analizzare il tavolo. Nell'applicazione core .net console questo metodo funziona bene, ma quando lo uso in blazor, non funziona.

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

Risultato

Non ho fatto eccezione

Risposta accettata

Il problema è che _res.Result blocca il thread fino al completamento _res.Result , il che si traduce in un deadlock in cui il blazer ha solo un thread.

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

L'accesso all'accesso get della proprietà blocca il thread chiamante fino al completamento dell'operazione asincrona; equivale a chiamare il metodo Wait.

È necessario attendere l'attività con await _res modo che il thread non sia un blocco e possa completare l'attività.




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché