C#线程(一)
2016-07-18 10:36
260 查看
一、利用Thread的方式
代码如下:
执行结果:
主线程开始
子线程执行第0次
子线程执行第1次
主线程结束
子线程执行第2次
子线程执行第3次
子线程执行第4次
主线程和子线程并行执行。
二、利用线程池的方式
运行结果:
主线程开始
执行方法 hello
主线程结束
代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; namespace ThreadPool { class Program { static void Main(string[] args) { Console.WriteLine("主线程开始"); Thread thread = new Thread(new ThreadStart(ThreadInvoke)); //启动线程 thread.Start(); //主线程持续2000秒钟 Thread.Sleep(2000); Console.WriteLine("主线程结束"); } static void ThreadInvoke() { for (int i = 0; i < 5; i++) { Console.WriteLine("子线程执行第{0}次", i); //每隔1000毫秒,循环一次 Thread.Sleep(1000); } } } }
执行结果:
主线程开始
子线程执行第0次
子线程执行第1次
主线程结束
子线程执行第2次
子线程执行第3次
子线程执行第4次
主线程和子线程并行执行。
二、利用线程池的方式
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace ThreadPoolDemo { class Program { static void Main(string[] args) { ThreadPool.QueueUserWorkItem(new WaitCallback(PoolMethod),"hello"); Console.WriteLine("主线程开始"); Thread.Sleep(1000); Console.WriteLine("主线程结束"); } static void PoolMethod(Object stateInfo) { Console.WriteLine("执行方法 " + stateInfo.ToString()); } } }
运行结果:
主线程开始
执行方法 hello
主线程结束
相关文章推荐
- C#线程间不能调用剪切板的解决方法
- C#线程同步的三类情景分析
- C#获取进程或线程相关信息的方法
- 简单对比C#程序中的单线程与多线程设计
- C#停止线程的方法
- C#子线程更新UI控件的方法实例总结
- C#线程队列用法实例分析
- C++使用CriticalSection实现线程同步实例
- 基于C++实现的线程休眠代码
- VB读取线程、句柄及写入内存的API代码实例
- C#网络编程基础之进程和线程详解
- C#通过Semaphore类控制线程队列的方法
- C#多线程处理多个队列数据的方法
- C#实现线程安全的简易日志记录方法
- C#中线程同步对象的方法分析
- ASP.NET线程相关配置
- 浅析linux环境下一个进程最多能有多少个线程
- 再谈JavaScript线程
- C#实现终止正在执行的线程
- Java线程编程中的主线程讲解