基础篇-怎样创建一个线程
来源:互联网 发布:苹果5怎么用3g网络 编辑:程序博客网 时间:2024/05/01 14:51
怎样创建一个线程
我只简单列举几种常用的方法,详细可参考.Net多线程总结(一)
一)使用Thread类
ThreadStart threadStart=new ThreadStart(Calculate);//通过ThreadStart委托告诉子线程讲执行什么方法,这里执行一个计算圆周长的方法
Thread thread=new Thread(threadStart);
thread.Start(); //启动新线程
public void Calculate(){
double Diameter=0.5;
Console.Write("The perimeter Of Circle with a Diameter of {0} is {1}"Diameter,Diameter*Math.PI);
}
二)使用Delegate.BeginInvoke
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);
}
三)使用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;
}
- 基础篇-怎样创建一个线程
- java基础--如何创建一个线程
- pthread 基础篇 创建线程
- 怎样创建一个静态库
- 怎样创建一个链表?
- 怎样创建一个HTML文件
- GCD创建线程基础
- 一个线程创建另一个线程
- 创建一个新线程
- 创建一个线程
- 创建一个线程
- 创建一个线程
- win32创建一个线程
- 创建一个线程
- MFC创建一个线程
- java线程(Thread)基础篇——创建线程
- Win32 SDK基础(7)—— 怎样创建一个窗口的子窗口
- Java怎样中断一个运行中的线程
- mtk Android 编译命令自定义--添加版本号
- MediaStore 与Media.EXTERNAL_CONTENT_URI
- Java实现右键弹出菜单例子
- 面试答案
- Android Surface 系统简单学习
- 基础篇-怎样创建一个线程
- 【书籍推荐】《Creating Dynamic UI with Android Fragments》
- mac上给git server 添加一个repository,并且添加一个git client的访问权限
- vector 比数组 的存取速度慢的不是一个数量级啊
- osg入门系列9-一个正方形
- 微信支付出现支付请求参数错误,请核实再试或交易出错,请稍后再试的可能原因
- 关于区分在javamail中smtp,pop协议引发的发、收、取邮件的概念
- 自行控制loadrunner的socket协议性能测试
- 右下角出现“测试模式 win7 内部版本7601”如何去掉?