Téléchargement de données dans MemoryStream

blazor

Question

J'ai un tableau google et le télécharge:

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

Ensuite, je fais un flux:

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

Et travaillez avec ce flux. Je veux analyser la table. Dans la console .net core application, cette méthode fonctionne bien, mais lorsque je l’utilise dans une application blazor, elle ne fonctionne pas.

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

Résultat

Je n'ai pas d'exception.

Réponse acceptée

Le problème est que _res.Result bloque le thread jusqu'à ce que la tâche soit terminée, ce qui entraîne un interblocage du fait que blazor n'a qu'un seul thread.

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

L'accès à l'accesseur get de la propriété bloque le thread appelant jusqu'à la fin de l'opération asynchrone; cela équivaut à appeler la méthode Wait.

Vous devez attendre la tâche avec await _res pour que le thread ne soit pas bloqué et puisse terminer la tâche.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi