• 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();
            }
  • 相关阅读:
    java fastjson 设置全局输出name最小化
    Spring MVC同一方法返回JSON/XML格式
    使用Vuejs编写单js组件
    iview使用vue-i18n实现国际化
    WPF usercontrol 自定义依赖属性
    正在尝试解析依赖项“MvvmLightLibs (≥ 5.2.0.0)”。 “MvvmLightLibs”已拥有为“CommonServiceLocator”定义的依赖项
    记第一次的破解经历
    HTML5实现手机QQ表情功能
    TypeScript 基本语法
    WebStorm下使用TypeScript
  • 原文地址:https://www.cnblogs.com/johsan/p/12448210.html
Copyright © 2020-2023  润新知