Task简单异步处理

使用ContinueWith

1.使用lambda表达式方式

            Task<string> task1 = new Task<string>(() =>
            {
                Debug.WriteLine("task0");
                return "task1";
            });
            Task<string> task2 = task1.ContinueWith(t =>
            {
                Debug.WriteLine(t.Result);
                return "task2";
            });
            Task<string> task3 = task2.ContinueWith(t =>
            {
                Debug.WriteLine(t.Result);
                return "task3";
            });
            task1.Start();

2.使用函数

        private void button1_Click(object sender, EventArgs e)
        {
            Task<string> task1 = new Task<string>(doTask1);
            Task<string> task2 = task1.ContinueWith(doTask2);
            Task<string> task3 = task2.ContinueWith(doTask3);
            task1.Start();
        }

        private string doTask1()
        {
            Debug.WriteLine("task0");
            return "task1";
        }

        private string doTask2(Task<string> t)
        {
            Debug.WriteLine(t.Result);
            return "task2";
        }

        private string doTask3(Task<string> t)
        {
            Debug.WriteLine(t.Result);
            return "task3";
        }

猜你喜欢

转载自www.cnblogs.com/yaosj/p/10342883.html
今日推荐