资源简介
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
///生产者-消费者模式:
///1、一个存放任务的队列;
///2、当有任务需要执行的时候,将它放入到队列中,所以需要一个将任务放入队列的方法也同样需要通知消费者进行消费;
///3、生产者只需要生产,即只负责添加任务,所以添加完任务后,生产者线程是可以不用等待消费者执行完毕的(可以不阻塞);
///4、消费者线程从队列中获取任务(获取的同时移除,因此需要锁)并执行,所以需要while循环监听队列;
///5、在这个例子中,使用AutoResetEvent的优势在于没有任务的时候不会消耗CPU,在有任务的时候会立即响应
namespace LLL
{
class ProducerConsumerQueue : IDisposable
{
EventWaitHandle _wh = new AutoResetEvent(false);
Thread _worker;
readonly object _locker = new object();
Queue _tasks = new Queue();
public ProducerConsumerQueue()
{
_worker = new Thread(Work);
_worker.Start();
}
public void EnqueueTask(string task)
{
lock (_locker) _tasks.Enqueue(task);
_wh.Set();
}
public void Dispose()
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 102400 2019-03-11 19:57 UsingParallel\.vs\UsingParallel\v15\.suo
文件 0 2019-03-05 20:58 UsingParallel\.vs\UsingParallel\v15\Server\sqlite3\db.lock
文件 610304 2019-03-11 19:57 UsingParallel\.vs\UsingParallel\v15\Server\sqlite3\storage.ide
文件 187 2019-03-05 20:53 UsingParallel\LLL\App.config
文件 6144 2019-03-05 20:53 UsingParallel\LLL\bin\Debug\LLL.exe
文件 187 2019-03-05 20:53 UsingParallel\LLL\bin\Debug\LLL.exe.config
文件 17920 2019-03-05 20:53 UsingParallel\LLL\bin\Debug\LLL.pdb
文件 23168 2019-03-05 20:53 UsingParallel\LLL\bin\Debug\LLL.vshost.exe
文件 187 2019-03-05 20:53 UsingParallel\LLL\bin\Debug\LLL.vshost.exe.config
文件 490 2019-03-05 20:53 UsingParallel\LLL\bin\Debug\LLL.vshost.exe.manifest
文件 6586 2019-03-05 20:53 UsingParallel\LLL\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 448 2019-03-05 20:53 UsingParallel\LLL\obj\Debug\LLL.csproj.FileListAbsolute.txt
文件 1755 2019-03-05 20:53 UsingParallel\LLL\obj\Debug\LLL.csprojResolveAssemblyReference.cache
文件 6144 2019-03-05 20:53 UsingParallel\LLL\obj\Debug\LLL.exe
文件 17920 2019-03-05 20:53 UsingParallel\LLL\obj\Debug\LLL.pdb
文件 0 2019-03-05 20:53 UsingParallel\LLL\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
文件 0 2019-03-05 20:53 UsingParallel\LLL\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
文件 0 2019-03-05 20:53 UsingParallel\LLL\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
文件 42 2019-03-05 20:58 UsingParallel\LLL\obj\Debug\生产者消费者模式.csproj.CoreCompileInputs.cache
文件 469 2019-03-05 20:53 UsingParallel\LLL\obj\Debug\生产者消费者模式.csproj.FileListAbsolute.txt
文件 1755 2019-03-05 20:53 UsingParallel\LLL\obj\Debug\生产者消费者模式.csprojResolveAssemblyReference.cache
文件 2417 2019-03-05 21:05 UsingParallel\LLL\ProducerConsumerQueue.cs
文件 743 2019-03-05 20:53 UsingParallel\LLL\Program.cs
文件 1348 2019-03-05 20:53 UsingParallel\LLL\Properties\AssemblyInfo.cs
文件 2600 2019-03-05 20:53 UsingParallel\LLL\生产者消费者模式.csproj
文件 187 2019-03-05 20:53 UsingParallel\MonitorWait和Pulse实现生产者消费者\App.config
文件 7168 2019-03-05 20:53 UsingParallel\MonitorWait和Pulse实现生产者消费者\bin\Debug\MonitorWait和Pulse实现生产者消费者.exe
文件 187 2019-03-05 20:53 UsingParallel\MonitorWait和Pulse实现生产者消费者\bin\Debug\MonitorWait和Pulse实现生产者消费者.exe.config
文件 17920 2019-03-05 20:53 UsingParallel\MonitorWait和Pulse实现生产者消费者\bin\Debug\MonitorWait和Pulse实现生产者消费者.pdb
文件 23168 2019-03-05 20:53 UsingParallel\MonitorWait和Pulse实现生产者消费者\bin\Debug\MonitorWait和Pulse实现生产者消费者.vshost.exe
............此处省略132个文件信息
- 上一篇:C# 串口控制(打开/关闭)
- 下一篇:WPF画布实现旋转等待效果
相关资源
- 仿XP系统的任务栏菜单
- C#网络应用编程 矩阵并行计算练习
- 简单模拟模拟任务管理器
- 仿Windows XP系统的任务栏菜单
- 设置任务栏时间
- wpf任务管理器源码
- C#屏蔽windows快捷键及任务管理器
- C#异步并行编程
- 隐藏任务栏图标-C#
- c#多任务网段扫描练习
- WPF 实现的任务管理器
- C# 仿任务管理器 实现了 cpu/内存/进程
- 仿XP系统的任务栏菜单效果,适用Wi
- 禁止从任务管理器中被关闭 + 进程保
- 多种winform窗体技巧(向窗体拖放图片
- c# 获取当前系统所有窗口句柄(含任
- c#任务管理器
- c# 多任务网段扫描
- c# 矩阵并行计算
- asp.net网站实现类似timer的定时任务
- C# 虚拟桌面(实现多个虚拟桌面并行
- winform datagridview 二维表头/自定义行标
- WPF 任务管理器(含开启启动、获取天
- C#隐藏任务栏
- C# 任务调度管理
- C# 隐藏显示任务栏
- C# 检索系统中正在运行的任务
- android 后台定时执行任务
- 定时自动运行任务
- 一个基于C#的网络流量实时监控程序任
评论
共有 条评论