C#线程与线程池的使用
2010-10-23 21:25
435 查看
using System;
using System.Threading;
class ThreadTest
{
public static void Main(){
MyThread mt=new MyThread();
//Thread t0=new Thread(new ThreadStart(method1));
//Thread t1=new Thread(new ThreadStart(method2));
//Thread t2=new Thread(new ThreadStart(mt.method3));
//t0.Start();
//t1.Start();
//t2.Start();
//以上注释掉的就是正常线程创建与使用的方法
//以下是使用线程池进行系统自动管理后台线程
ThreadPool.QueueUserWorkItem(new WaitCallback(method1));
ThreadPool.QueueUserWorkItem(new WaitCallback(method2));
ThreadPool.QueueUserWorkItem(new WaitCallback(mt.method3));
//因为线程池创造线程属于守护线程,前台停止自然后台也停止,所以
//使用ReadLine()阻塞,查看结果
Console.ReadLine();
}
public static void method1(Object stateInfo){
//使用线程池必备参数Object
//没有这个参数使用线程池编译不过,应该是发送前台消息的一个参数
for(int i=0;i<1000;i++)
{
Console.Write("a");
Thread.Sleep(10);
}
}
public static void method2(Object stateInfo){
for(int i=0;i<1000;i++){
Console.Write("b");
Thread.Sleep(10);
}
}
}
class MyThread{
public void method3(Object stateInfo){
for(int i=0;i<1000;i++){
Console.Write("C");
}
}
}本文出自 “Haley笔记” 博客,请务必保留此出处http://haley.blog.51cto.com/2280460/409839
using System.Threading;
class ThreadTest
{
public static void Main(){
MyThread mt=new MyThread();
//Thread t0=new Thread(new ThreadStart(method1));
//Thread t1=new Thread(new ThreadStart(method2));
//Thread t2=new Thread(new ThreadStart(mt.method3));
//t0.Start();
//t1.Start();
//t2.Start();
//以上注释掉的就是正常线程创建与使用的方法
//以下是使用线程池进行系统自动管理后台线程
ThreadPool.QueueUserWorkItem(new WaitCallback(method1));
ThreadPool.QueueUserWorkItem(new WaitCallback(method2));
ThreadPool.QueueUserWorkItem(new WaitCallback(mt.method3));
//因为线程池创造线程属于守护线程,前台停止自然后台也停止,所以
//使用ReadLine()阻塞,查看结果
Console.ReadLine();
}
public static void method1(Object stateInfo){
//使用线程池必备参数Object
//没有这个参数使用线程池编译不过,应该是发送前台消息的一个参数
for(int i=0;i<1000;i++)
{
Console.Write("a");
Thread.Sleep(10);
}
}
public static void method2(Object stateInfo){
for(int i=0;i<1000;i++){
Console.Write("b");
Thread.Sleep(10);
}
}
}
class MyThread{
public void method3(Object stateInfo){
for(int i=0;i<1000;i++){
Console.Write("C");
}
}
}本文出自 “Haley笔记” 博客,请务必保留此出处http://haley.blog.51cto.com/2280460/409839
相关文章推荐
- 关于C#线程,线程池和并行运算的简单使用和对比
- 关于C#线程,线程池和并行运算的简单使用和对比
- C#使用线程池创建线程
- c# WaitHandle类在线程池ThreadPool(超过64个线程时)中的使用方法
- 关于C#线程,线程池和并行运算的简单使用和对比
- 一起谈.NET技术,关于C#线程,线程池和并行运算的简单使用和对比
- 关于C#线程,线程池和并行运算的简单使用和对比
- 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
- C# 线程手册 第五章 扩展多线程应用程序 在C#中使用线程池
- CLR via C# 读书笔记 1-1 何时使用线程或者线程池
- C# 线程的定义和使用
- c# 使用委托操作线程
- 线程池ExecutorService和完成服务CompletionService的使用获取线程的返回结果
- C#使用线程加载指定目录下的所有子目录和文件名称到TreeView中
- 【C#】42. 在线程中使用Try Catch
- 线程基础:线程池(6)——基本使用(中)
- C# 线程手册 第三章 使用线程 Monitor.TryEnter()
- c#线程中使用 dataset
- 解决c#所有单线程单元(STA)线程都应使用泵式等待基元(如 CoWaitForMultipleHandles),并在运行时间很长的操作过程中定期发送消息。 转载
- C#里面线程的使用方法