首页 > 代码库 > Task

Task

        private async void Form1_Load(object sender, EventArgs e)
        {
            string x = await Test();
            MessageBox.Show(x);

        }
        async Task<string> Test()
        {
            await Task.Delay(5000);
            return "tese";
        }

  Task.Run Func 可以用返回值

  new Task(Action) 没有返回值

  ContinueWith((task)=>{}); //完成之后在执行

  加上 await 会异步等待

  task.GetAwaiter().GetResult(); //主线程会挂起等待

     await async配合使用

  IsCompleted 判断是否已完成 只读

     //用Task代替ThreadPool 

  //Parallel and plinq

  new Action(() =>
  {

    Task1,
           Task2,
           Task3

  })();

  var funcList = new List<Func<Task>>()
      {
           Task1,
           Task2,
           Task3
       };
   funcList.ForEach(async _ => await _());

jdd

 

Task