C# 线程(Threading)编程 实例
来源:互联网 发布:淘宝详情页尺寸大小 编辑:程序博客网 时间:2024/05/04 01:48
手头一个项目中,使用到多线程例, 分配任务, 处理任务,显示任务状态,等.
下面的代码就是一个样例. 供大家参考.
- /* By shelly<mrshelly at hotmail.com> */
- using System;
- using System.Threading;
- using System.Collections;
- namespace shareThread{
- class MyThread{
- static Queue q1=new Queue();
- static int b=0;
- int thState = 3;
- public void getTask(){
- while((this.thState & 1) == 1){
- lock(this){
- ++b;
- q1.Enqueue(b);
- System.Console.WriteLine("getTask:{0}--------------",b);
- }
- Thread.Sleep(200);
- }
- }
- public void doTask(){
- int curB = 0;
- while((this.thState & 2) == 2){
- if(q1.Count >0){
- lock(this) curB = (int)q1.Dequeue();
- System.Console.WriteLine("doTask:{0}---{1}-----------",curB,q1.Count);
- }
- if(q1.Count >5){
- Thread.Sleep(100);
- }else{
- Thread.Sleep(5000);
- }
- }
- }
- public void showQueue(){
- while(true){
- System.Console.Write(" {0} -->", q1.Count);
- Thread.Sleep(1000);
- }
- }
- public void setState(int s){
- lock(this){
- thState = s;
- }
- }
- }
- class ClassMain{
- [STAThread]
- static void Main(string[] args){
- MyThread myc;
- Thread thDoTask1, thDoTask2, thDoTask3, thGetTask, thShowTask;
- myc=new MyThread();
- thDoTask1 = new Thread(new ThreadStart(myc.doTask));
- thDoTask1.Start();
- thDoTask2 = new Thread(new ThreadStart(myc.doTask));
- thDoTask2.Start();
- thDoTask3 = new Thread(new ThreadStart(myc.doTask));
- thDoTask3.Start();
- thGetTask = new Thread(new ThreadStart(myc.getTask));
- thGetTask.Start();
- thShowTask = new Thread(new ThreadStart(myc.showQueue));
- thShowTask.Start();
- Thread.Sleep(20000);//主线程睡眠
- myc.setState(0);
- System.Console.Read();//等待完成,dos窗口不会马上关闭了.
- }
- }
- }
- C# 线程(Threading)编程 实例
- C#线程编程实例
- C#线程问题Threading.Thread
- Python实战之多线程编程threading.Thread
- 线程编程指南(Threading Programming Guide)
- Python实战之多线程编程threading.Thread
- python核心编程-线程之threading模块
- python核心编程-线程threading模块二
- C# 线程池和编程实例
- C#网络编程之多线程socket实例
- C#中System.Threading.Thread类及其线程睡眠代码
- C#中System.Threading.Thread类及其线程睡眠代码
- python核心编程-线程threading模块之三
- python核心编程-线程threading模块之四
- python核心编程-线程threading模块之生产者与消费者
- C#多线程编程实例 线程与窗体交互
- C#多线程编程实例 线程与窗体交互
- C#多线程编程实例 线程与窗体交互
- 联想的“二奶”风波
- 整个web项目一起打包,而不用设置环境变量
- Hook定义
- error C2220: warning treated as error - no object file generated的处理方法
- zoj 1100 解题报告 数学的力量很强大
- C# 线程(Threading)编程 实例
- Advanced Collision Detection Techniques
- Oracle与SqlServer的时间转换函数
- 强烈建议北京各大社区及高校出租电动车~
- xmlns定义(web.xml)
- ASP.NET跨页面传值技巧总结
- HXSN邮件服务器升级技术方案书
- C#模拟网站登录
- 一个超好的鼠标右键JavaScript代码