await 作用于 Task或者返回Task的方法,无论其有没有async修饰。

 

注意:如果没有使用await仅仅调用标识了async的方法,内部不会执行,只是返回一个Task

如果该方法为void,内部会执行。

 

//////////////////////////////////////////////////////

 

〇。简单使用实例。

        private async void button1_Click(object sender, EventArgs e)
        {

            try
            {
                this.label1.Text= await JustDO2();//或者await JustDO();
            }
            catch (Exception ex)
            {
                
                this.label1.Text=ex.Message;
            }
        }

        private  async Task<string> JustDO()
        {
            await Task.Delay(2000);
            //throw new Exception("ooops");
            return "OK";
        }


        private Task<string> JustDO2()
        {
            return Task.Run(() =>
            {
                Task.Delay(TimeSpan.FromSeconds(4)).Wait();
                throw new Exception("oooops");
                return Task.FromResult("OK");
            });

        }

 

 

 

一。使用并发的泛型方法

        static async Task<T> DelayResult<T>(T result,TimeSpan delay)
        {
            await Task.Delay(delay);
            return result;
        }

如何调用,点击按钮,更新文本。

        private async void button1_Click(object sender, EventArgs e)
        {
            this.label1.Text = await DelayResult<string>("OK", TimeSpan.FromSeconds(5));
             

        }
View Code

相关文章:

  • 2021-11-19
  • 2022-12-23
  • 2022-01-02
  • 2021-12-16
  • 2022-02-11
  • 2022-02-27
  • 2021-06-10
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-22
  • 2021-11-27
  • 2022-01-15
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案