C# Task.Delay 阻止第二个任务

我想运行两个任务。


StartAccessTokenTimer()每 60 秒运行一次并刷新 accesstoken 变量。 如果获得访问令牌,StartItemsTimer()将在之后开始StartAccessTokenTimer()并每 3 秒工作一次。


    private accessToken = "";


    private async Task StartAccessTokenTimer()

    {

        CancellationTokenSource source = new CancellationTokenSource();


        while (true)

        {

            accesstoken = await GetAccessToken();

            await Task.Delay(TimeSpan.FromSeconds(3), source.Token);

        }

    }


    private async Task StartItemsTimer()

    {

        CancellationTokenSource source = new CancellationTokenSource();


        while (true)

        {

            var items = await GetItems(accessToken, "1");

            await Task.Delay(TimeSpan.FromSeconds(60), source.Token);

        }

    }


    public async Task StartOperations(){

        await StartAccessTokenTimer();

        await StartItemsTimer();

    }

但它不会触发GetItems()方法。因为StartAccessTokenTimer()永不启动..它不断地开火 GetAccessToken()。


慕斯王
浏览 180回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP