C# 多线程(委托ThreadStart)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;

namespace CreateThreading
{
    class Program
    {
        //创建一个线程,使用Thread类创建线程时,只需提供线程入口即可。
        //(线程入口使程序知道该让这个线程干什么事)

        //在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,
        //你可以把ThreadStart理解为一个函数指针,指向线程要执行的函数,
        //当调用C# Thread.Start()方法后,线程就开始执行ThreadStart所代表或者说指向的函数。

        public static void Main()
        {
            Program myCreateThreading = new Program();
            myCreateThreading.Start线程();
            Console.WriteLine(" 离开请按[ENTER] !!");
            Console.Read();
        }
        int i = 0;
        private void Start线程()
        {
            //ThreadStart 多线程的委托,所委托的方法不能有输入参数,返回值为void
            ThreadStart myThreadStart1 = new ThreadStart(PrintOddNumber);//ThreadStart是个线程委托
            Thread Threading1 = new Thread(myThreadStart1);//线程依赖委托执行方

            Threading1.Name = "A Thread";

            ThreadStart myThreadStart2 = PrintNumber;
            Thread Threading2 = new Thread(new ThreadStart(myThreadStart2));
            Threading2.Name = "B Thread";
            Threading2.Start(); //启动第2个线程
            Threading1.Start(); //启动第1个线程

        }

        // 在控制台输出目前线程的名称以及小于1000 的奇数

        private void PrintOddNumber()
        {
            for (int i = 1; i < 1000; i++)
            {
                if (i % 2 != 0)
                    Console.WriteLine("线程{0} 输出奇数{1} ",
                Thread.CurrentThread.Name, i);
            }
        }

        // 于控制台输出目前线程的名称以及小于1000 的偶数

        private void PrintNumber()
        {
            for (int i = 1; i < 1000; i++)
            {
                if (i % 2 == 0)
                    Console.WriteLine("线程{0} 输出偶数{1} ",
                Thread.CurrentThread.Name, i);
            }
        }
    }
}

 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页