C#多线程的使用

1 篇文章 0 订阅
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("\nthe gun has ring!~~~~\n");
         //   ShowSingleThreadRun();
           ShowMultiThreadRun();
            Console.WriteLine("\nthe race over!\n");
            Console.ReadKey();
        }
        private static void ShowSingleThreadRun() 
        {
            Runner runner = new Runner("羊",5);
            Runner wolf = new Runner("灰太狼",6);
            int length = 60;
            runner.Run(length);
            wolf.Run(length);
        }
        private static void ShowMultiThreadRun() 
        {
            Runner runner = new Runner("羊", 5);
            Runner wolf = new Runner("灰太狼", 6);
            int length = 60;
            Thread sheepThread = new Thread(new ParameterizedThreadStart(runner.Run));
            Thread wolfThread = new Thread(new ParameterizedThreadStart(wolf.Run));
            Console.WriteLine("回车后开始跑步");
            Console.ReadLine();
            sheepThread.Start(length);
            wolfThread.Start(length);
            //硬性使之排队,shi
            sheepThread.Join();
            wolfThread.Join();
        }
    }
    sealed class Runner
    {
        private string _name;
        private int _speed;
 
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
        public Runner(string name,int speed) 
        {
            this._name = name;
            this._speed = speed;
        }
        public void Run(object objlength)
        {
 
            if (objlength != null && objlength.GetType().FullName == "System.Int32")
            {
                int length = Int32.Parse(objlength.ToString());
                Console.WriteLine("<" + this.Name + "> listen to me, ready to run!");
                for (int count = this._speed; count <= length; count += this._speed)
                {
                    Thread.Sleep(1000);
                    Console.WriteLine("<");
                    Console.WriteLine(this.Name);
                    Console.WriteLine(">");
                    Console.WriteLine("it has run in ");
                    Console.WriteLine("<");
                    Console.WriteLine(count.ToString());
                    Console.WriteLine(">");
                    Console.WriteLine("meters away");
                    Console.WriteLine("\n");
                    
                }
                Console.WriteLine("\n<" + this.Name + "> arrived the deadline!!");
            }
            else 
            {
                Console.WriteLine("error!");
            }
 
            
        }
    }
 
 
 
 
 
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值