0

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
        };
    }
4

0 に答える 0