MemoryStream에서 데이터 다운로드하기

blazor

문제

나는 구글 테이블을 가지고 그것을 다운로드 :

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

그럼 나는 스트림을 만든다.

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

이 스트림으로 작업하십시오. 테이블을 파싱하고 싶습니다. 콘솔 .net 핵심 응용 프로그램에서이 메서드는 잘 작동하지만, 내가 면도기 응용 프로그램에서 사용할 때 작동하지 않습니다.

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

결과

나는 예외가 아니다.

수락 된 답변

문제는 _res.Result 가 작업이 완료 될 때까지 스레드를 차단하므로 blazor는 하나의 스레드 만 가지므로 교착 상태가 발생한다는 것입니다.

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

이 속성의 get 접근 자에 액세스하면 비동기 작업이 완료 될 때까지 호출 스레드가 차단됩니다. Wait 메서드를 호출하는 것과 같습니다.

스레드가 블록이 아니고 작업을 완료 할 수 있도록 await _resawait _res 작업을 await _res 합니다.




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.