BLAZOR как сделать динамическое обновление переменной

при вызове StartCountDowan происходит динамическое уменьшение счетчика, при вызове ListFiles - счетчик не показывает изменений. подскажите, как решить эту проблему?

@page "/"

@using System
@using System.Net
@using System.IO
@using System.Globalization
@using System.Diagnostics
@using System.Threading

<h1>@count</h1>
<button @onclick="@StartCountDown">Start Countdown</button>
<button @onclick='@(() => ListFiles("ftp://ftpurl/"))'>Read</button>

@code {
    int count = 10;

    protected override void OnInitialized()
    {
    }

    private async Task StartCountDown()
    {
        var timer = new Timer(new TimerCallback(_ =>
        {
            if (count <= 0) return;
            count--;
            InvokeAsync(() =>
            {
                StateHasChanged();
            });
        }), null, 1000, 1000);
    }

    private async Task ListFiles(string ftpPath)
    {
        FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpPath);
        request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
        request.Credentials = new NetworkCredential("Anonymous", "user@mail");
        using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
        using (Stream responseStream = response.GetResponseStream())
        using (StreamReader reader = new StreamReader(responseStream))
        {
            string line = reader.ReadLine();
            while (!string.IsNullOrEmpty(line))
            {
                ...
                await InvokeAsync(() =>
                {
                    count++;
                    StateHasChanged();
                });
                ...                
                line = reader.ReadLine();                
            }
        }
    }  
}

Ответы (0 шт):