本文共 1783 字,大约阅读时间需要 5 分钟。
ThreadStart threadStart = new ThreadStart(Func); Thread thread = new Thread(threadStart); thread.Start(); public void Func() { ... }
delegate double CalculateMethod(double Diameter); //申明一个委托,表明需要在子线程上执行的方法的函数签名 static CalculateMethod calcMethod = new CalculateMethod(Calculate);//把委托和具体的方法关联起来 static void Main(string[] args) { //此处开始异步执行,并且可以给出一个回调函数(如果不需要执行什么后续操作也可以不使用回调) calcMethod.BeginInvoke(5, new AsyncCallback(TaskFinished), null); Console.ReadLine(); } //线程调用的函数,给出直径作为参数,计算周长 public static double Calculate(double Diameter) { return Diameter * Math.PI; } //线程完成之后回调的函数 public static void TaskFinished(IAsyncResult result) { double re = 0; re = calcMethod.EndInvoke(result); Console.WriteLine(re); }
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; }
转载地址:http://bfrji.baihongyu.com/