Что-то блокирует мою нить - Blazor wasm - PullRequest
0 голосов
/ 15 апреля 2020

Используя MatBlazor, я пытаюсь загрузить файлы. Однако что-то блокирует поток, и все приложение блокируется. Я не могу понять, почему. Кажется, что поток заблокирован, пока файл не был загружен в память. Это мой код или MatFileUploadEntry блокирует поток?

У кого-нибудь есть идеи?

Звоните:

<MatFileUpload OnChange="@FileUpload"></MatFileUpload>

Ответ:

 private async Task FileUpload(IMatFileUploadEntry[] files)
    {

        var f = files.FirstOrDefault();

        if (f.Name.IsValidFileFormat())
        {

            var file = await GetFileModel(f);

            if (f.Name.IsImage())
                Model.Image = file;
            else
                Model.Document = file;


        }
    }
    private async Task<FileModel> GetFileModel(IMatFileUploadEntry f)
    {
        var sw = new Stopwatch();

        sw.Start();
        using var ms = new MemoryStream();
        await f.WriteToStreamAsync(ms);
        sw.Stop();

        var base64String = Convert.ToBase64String(ms.ToArray());
        return new FileModel
        {
            FileName = f.Name,
            FileContentBase64 = base64String
        };
    }
...