博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程的学习
阅读量:6310 次
发布时间:2019-06-22

本文共 3780 字,大约阅读时间需要 12 分钟。

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace ConsoleApplication1{    ///     /// 声明一个委托    ///     ///     /// 
delegate double CalculateMethod(double Diameter); class Program { /// /// 定义委托对象 /// public static CalculateMethod calcMethod; /// /// 计算结果 /// public static double result = 0; static void Main(string[] args) { /***********一、简单线程***********/ //ThreadStart threadStart = new ThreadStart(Calculate); //Thread thread = new Thread(threadStart); //thread.Start(); /***********二、线程传递单个参数******************/ //使用这个这个委托定义的线程的启动函数可以接受一个输入参数 //ParameterizedThreadStart threadStart = new ParameterizedThreadStart(Calculate); //Thread thread = new Thread(threadStart); //thread.Start(0.9); /***********三、线程使用线程类调用方法******************/ //MyThread t = new MyThread(5.0); //ThreadStart threadStart = new ThreadStart(t.Calculate); //Thread thread = new Thread(threadStart); //thread.Start(); /***********四、把参数传递变成了属性共享,把逻辑和逻辑涉及的数据封装在一起(匿名方法)******************/ //double Diameter = 0.9d; //Thread thread = new Thread(new ThreadStart(delegate() //{ // Console.WriteLine("Calculate Start"); // Thread.Sleep(2000); // Console.WriteLine("匿名方法: The perimeter Of Circle with a Diameter of {0} is {1}", Diameter, Diameter * Math.PI); ; // Console.Read(); //})); //thread.Start(); /***********王、线程池******************/ 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 = 0.9d; Console.WriteLine("Calculate Start"); Thread.Sleep(2000);//睡2秒 Console.Write("简单线程:The perimeter Of Circle with a Diameter of {0} is {1}", Diameter, Diameter * Math.PI); Console.Read(); } /// /// 传递单个参数线程启用方法 /// /// public static void Calculate(object arg) { double Diameter = (double)arg; Console.WriteLine("Calculate Start"); Thread.Sleep(2000);//睡2秒 Console.Write("线程传递单个参数:The perimeter Of Circle with a Diameter of {0} is {1}", Diameter, Diameter * Math.PI); Console.Read(); } /// /// 线程池调用方法 /// /// ///
public static void Calculate(double Diameter) { Console.WriteLine("Calculate Start"); Thread.Sleep(2000);//睡2秒 Console.Write("线程传递单个参数:The perimeter Of Circle with a Diameter of {0} is {1}", Diameter, Diameter * Math.PI); Console.Read(); } } /// /// 线程类(将线程要执行的方法和它需要的参数封装到类) /// public class MyThread { public double Diameter = 10; public double Result = 0; public MyThread(double Diameter) { this.Diameter = Diameter; } public void Calculate() { Console.WriteLine("Calculate Start"); Thread.Sleep(2000);//睡2秒 Console.WriteLine("Calculate End, Diameter is {0},Result is {1}", this.Diameter, Diameter * Math.PI); Console.Read(); } }}

转载于:https://www.cnblogs.com/IT-SmallBird/archive/2012/11/30/2796653.html

你可能感兴趣的文章
Oracle VM VirtualBox配置文件
查看>>
猫都能学会的Unity3D Shader入门指南(二)
查看>>
玩聚的Tweet&Blog墙 X
查看>>
URL中的特殊字符
查看>>
UITableView与UIScrollView的一些问题(持续更新)
查看>>
内存四区分析
查看>>
我的六年软件测试感悟
查看>>
autocomplete实现联想输入,自动补全
查看>>
sql多条件查询语句
查看>>
解决Select2控件不能在jQuery UI Dialog中不能搜索的bug
查看>>
【资讯集中营】一张订单的炼成记之用户群画像
查看>>
Vim杂记:Sublime的配色方案
查看>>
Linux 下安装oracle 数据库的准备
查看>>
C4.5算法
查看>>
CareerCup-2.4
查看>>
xdebug影响php运行速度
查看>>
使用NSHashTable存储引用对象
查看>>
数据库重构《Refactoring DataBase Evolutionary DataBase Design》介绍
查看>>
Java类锁和对象锁实践
查看>>
深入理解Java内存模型(七)——总结
查看>>