zoukankan      html  css  js  c++  java
  • C#多线程的几种实现方法

    1.最简单的多线程

    using System;
    using System.Threading;
    
    namespace ThreadTest1
    {
        public class SimpleThread
        {
            public void Run()
            {
                Thread t1 = new Thread(new ThreadStart(this.ThreadFunc));
                Thread t2 = new Thread(new ThreadStart(this.ThreadFunc));
                t1.Start();
                Thread.Sleep(1000);
                t2.Start();
            }
    
            private void ThreadFunc()
            {
                for (int i = 0; i < 100; i++)
                {
                    Console.WriteLine(i);
                    Thread.Sleep(100);
                }
            }
        }
    }
    
    

    2.可以传参数的多线程

    using System;
    using System.Threading;
    
    namespace ThreadTest1
    {
        class ThreadWithPara
        {
            public void Run()
            {
                Thread t1 = new Thread(ThreadFunc);
                Thread t2 = new Thread(new ParameterizedThreadStart(ThreadFunc));
                t1.Start("t1");
                Thread.Sleep(1000);
                t2.Start("t2");
            }
    
            private void ThreadFunc(object obj)
            {
                for (int i = 0; i < 100; i++)
                {
                    Console.WriteLine(i + obj.ToString());
                    Thread.Sleep(100);
                }
            }
        }
    }
    
    

    3.自定义类的多线程

    using System;
    using System.Threading;
    
    namespace ThreadTest1
    {
        class MyThreadClass
        {
            private string data;
    
            public MyThreadClass(string data)
            {
                this.data = data;
            }
    
            public void ThreadMain()
            {
                Console.WriteLine("Running in a thread,data: {0}", data);
            }
        }
    
        class MainClass
        {
            public void Run()
            {
                MyThreadClass mtc = new MyThreadClass("thread1");
                Thread thread = new Thread(mtc.ThreadMain);
                thread.Start();
            }
        }
    }
    
    

    4. 匿名方法实现的多线程

    using System;
    using System.Threading;
    
    namespace ThreadTest1
    {
        public class AnonymousThread
        {
            public void Run()
            {
                Thread t1 = new Thread(() => ThreadFunc("thread-1"));
                t1.Start();
            }
    
            private void ThreadFunc(string obj)
            {
                for (int i = 0; i < 100; i++)
                {
                    Console.WriteLine(i + obj.ToString());
                    Thread.Sleep(100);
                }
            }
        }
    }
    
    

    5.参考

    C# 给多线程传参的三种方式

  • 相关阅读:
    ES6学习笔记(五)函数的扩展
    ES6学习笔记(四)数值的扩展
    ES6学习笔记(二)变量的解构与赋值
    ES6学习笔记(一)新的变量定义命令let和const
    JS对象继承与原型链
    JS构造函数、对象工厂、原型模式
    获取地图的坐标
    大屏页面
    如何更新git?
    ES6——多个箭头函数
  • 原文地址:https://www.cnblogs.com/wardensky/p/4381930.html
Copyright © 2011-2022 走看看