欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

关于Task类处理多线程简单示例

发布时间:2025/3/21 编程问答 62 豆豆
生活随笔 收集整理的这篇文章主要介绍了 关于Task类处理多线程简单示例 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1.定义一个线程
var task1 = Task.Factory.StartNew(() => DoSomeWork());
方法如下:
  View Code
        private static object DoSomeWork()
        {
            Console.WriteLine("nihao ");
            System.Threading.Thread.Sleep(3000);
            Console.Write("nihao ");
            return "xiexie";
        }

2.多线程执行后,执行另一个方法
  var task1 = Task.Factory.StartNew(() => DoSomeWork()).ContinueWith(
                 task => { Console.WriteLine(task.Result.ToString()); }).ContinueWith(
                 task => { Console.WriteLine(task.Result.ToString()); });
3.等待所有线程结束
var task1 = Task.Factory.StartNew(() => DoSomeWork());
var task2 = Task.Factory.StartNew(() => DoSomeWork());
var task3 = Task.Factory.StartNew(() => DoSomeWork());
Task.WaitAll(task1, task2, task3);
4.等待其中一个线程结束
var task1 = Task.Factory.StartNew(() => DoSomeWork());
var task2 = Task.Factory.StartNew(() => DoSomeWork());
var task3 = Task.Factory.StartNew(() => DoSomeWork());
Task.WaitAny(task1, task2, task3);
5.等待所有线程结束执行的方法
var task1 = Task.Factory.StartNew(() =>
{
    Thread.Sleep(3000);
    return "dummy value 1";
});
var task2 = Task.Factory.StartNew(() =>
{
    Thread.Sleep(3000);
    return "dummy value 2";
});
var task3 = Task.Factory.StartNew(() =>
{
    Thread.Sleep(3000);
    return "dummy value 3";
});
Task.Factory.ContinueWhenAll(new[] { task1, task2, task3 }, tasks =>
{
    foreach (Task<string> task in tasks)
    {
        Console.WriteLine(task.Result);
    }
});

总结

以上是生活随笔为你收集整理的关于Task类处理多线程简单示例的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。