• 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# 给多线程传参的三种方式

  • 相关阅读:
    Less(27a)GET
    Less(27)GET
    虚拟机打开文件黑屏
    mysql开放远程连接权限
    fidder如何设置代理转发
    如何获取APK的包名
    ADB调试原理之通俗版本
    adb端口5037被占用怎么办
    ADB调试原理
    如何使用无线调试手机
  • 原文地址:https://www.cnblogs.com/wardensky/p/4381930.html
Copyright © 2020-2023  润新知