一个多线程的小例子---C#高级编程学习
来源:互联网 发布:网络阅卷y100edu 编辑:程序博客网 时间:2024/05/22 07:40
C#高级编程学习时的小例子:
public void main() { int threadCount = 6; int semaphoreCount = 3; var semaphore = new SemaphoreSlim(semaphoreCount, semaphoreCount); var threads = new Thread[threadCount]; for (int i = 0; i < threadCount; i++) { threads[i] = new Thread(threadMain); threads[i].Start(semaphore); } for (int i = 0; i < threadCount; i++) { threads[i].Join(); } Console.WriteLine("All threads Finished"); } public void threadMain(object o) { SemaphoreSlim semaphore = o as SemaphoreSlim; Trace.Assert(semaphore != null, "o must be a Semaphore type"); bool isCompleted = false; while(!isCompleted) { if (semaphore.Wait(600)) { try { Console.WriteLine("Thread {0} locks the semaphore", Thread.CurrentThread.ManagedThreadId); Thread.Sleep(2000); } finally { semaphore.Release(); Console.WriteLine("Thread {0} releases the semaphore", Thread.CurrentThread.ManagedThreadId); isCompleted = true; } } else { Console.WriteLine("TimeOut for Thread {0};Wait again", Thread.CurrentThread.ManagedThreadId); } } }
结果:
- 一个多线程的小例子---C#高级编程学习
- 多线程的一个小例子
- 学习VC多线程时随手写的一个小例子
- C# 多线程小例子
- c# BackGroundWorker 多线程操作的小例子
- C#多线程的一些小例子
- c# BackGroundWorker 多线程操作的小例子
- c# BackGroundWorker 多线程操作的小例子
- c# BackGroundWorker 多线程操作的小例子
- c# winform多线程的小例子
- c# BackGroundWorker 多线程操作的小例子
- c# BackGroundWorker 多线程操作的小例子
- c# BackGroundWorker 多线程操作的小例子
- c# BackGroundWorker 多线程操作的小例子
- Linux多线程的一个小例子
- C# 一个简单的多线程例子
- 多线程编程(18) - 再从一个小例子出发
- 基本多线程编程的一个例子
- 在Windows下编译ffmpeg完全手册
- deleget
- csdn 回来了
- 取一个集合的前n个最大或最小值
- 数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
- 一个多线程的小例子---C#高级编程学习
- Javamail 发送附件中文名乱码问题解决
- 获取区域内控件 Contorls[int index]并设置起大小
- fsck
- 关于Android完全退出程序
- JAVA泛型类型的使用举例
- ALTER TABLE 语句
- php 的post
- 备份恢复命令