C#多线程的创建

方法一:使用Thread类

public static void Main(string[] args)
     {
          //方法一:使用Thread类
          ThreadStart threadStart = new ThreadStart(Calculate);//通过ThreadStart委托告诉子线程执行什么方法  
          Thread thread = new Thread(threadStart);
          thread.Start();//启动新线程
     }

     public static void Calculate()
     {
          Console.Write("执行成功");
          Console.ReadKey();
     }

 

方法二:使用Delegate.BeginInvoke

delegate double CalculateMethod(double r);//声明一个委托,表明需要在子线程上执行的方法的函数签名
     static CalculateMethod calcMethod = new CalculateMethod(Calculate);

   static void Main(string[] args)
     {
          //方法二:使用Delegate.BeginInvoke
          //此处开始异步执行,并且可以给出一个回调函数(如果不需要执行什么后续操作也可以不使用回调)
          calcMethod.BeginInvoke(5, new AsyncCallback(TaskFinished), null);
          Console.ReadLine();
     }

   public static double Calculate(double r)
     {
         return 2 * r * Math.PI;
     }
     //线程完成之后回调的函数
     public static void TaskFinished(IAsyncResult result)
     {
         double re = 0;
         re = calcMethod.EndInvoke(result);
         Console.WriteLine(re);
     }

 

方法三:使用ThreadPool.QueueworkItem

WaitCallback w = new WaitCallback(Calculate);
    //下面启动四个线程,计算四个直径下的圆周长
    ThreadPool.QueueUserWorkItem(w, 1.0);
    ThreadPool.QueueUserWorkItem(w, 2.0);
    ThreadPool.QueueUserWorkItem(w, 3.0);
    ThreadPool.QueueUserWorkItem(w, 4.0);

    public static void Calculate(double Diameter)
    {
        return Diameter * Math.PI;
    }

 

转载自:https://www.cnblogs.com/gangle/p/9285094.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值