zoukankan      html  css  js  c++  java
  • C# 多线程

    DEMO:


            private async static void TestTasks()
            {
                Console.WriteLine("主线程开始");
                //for (var i = 0; i < 5; i++)
                //{
                //    Task<string> task = Task<string>.Run(() =>
                //    {
                //        Thread.Sleep(1000);
                //        Console.WriteLine(Thread.CurrentThread.ManagedThreadId.ToString());
                //        return Thread.CurrentThread.ManagedThreadId.ToString();
                //    });
                //    ////会等到任务执行完之后执行
                //    //task.GetAwaiter().OnCompleted(() =>
                //    //{
                //    //    Console.WriteLine(task.Result);
                //    //});
                //}
                System.Diagnostics.Stopwatch watch1 = new System.Diagnostics.Stopwatch();
                watch1.Start();
                for (int i = 1; i <= 10; i++)
                {
                    Console.Write(i + ",");
                    Thread.Sleep(1000);
                    //Task<string> task = Task<string>.Run(() =>
                    //{
                    //    Thread.Sleep(1000);
                    //    //Console.WriteLine(Thread.CurrentThread.ManagedThreadId.ToString());
                    //    return Thread.CurrentThread.ManagedThreadId.ToString();
                    //});
                    ////会等到任务执行完之后执行
                    //task.GetAwaiter().OnCompleted(() =>
                    //{
                    //    Console.WriteLine(task.Result);
                    //});
                }
                watch1.Stop();
                Console.WriteLine("watch1:" + watch1.Elapsed);

                System.Diagnostics.Stopwatch watch2 = new System.Diagnostics.Stopwatch();
                watch2.Start();
                //会调用线程池中的线程
                Parallel.For(1, 10, i =>
                {
                    Console.WriteLine(i + ",线程ID:" + Thread.CurrentThread.ManagedThreadId);
                    Thread.Sleep(1000);
                });
                watch2.Stop();
                Console.WriteLine("watch2:" + watch2.Elapsed);
     
                Console.WriteLine("主线程结束");
                Console.Read();
            }
  • 相关阅读:
    24点游戏算法
    汉诺塔算法
    台阶算法
    质因数分解算法
    全排列递归算法
    DFS 深度优先搜索例题
    容器
    数细胞
    C++栈和队列
    C++STL中vector容器 begin()与end()函数、front()与back()的用法
  • 原文地址:https://www.cnblogs.com/johsan/p/12448210.html
Copyright © 2011-2022 走看看