为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕斯王 2021-06-04 15:00:25
我想运行两个任务。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()。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 179 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信