专业网站建设品牌,17年专业建站经验,服务6000+客户--广州松河
免费热线:400-963-0016
微信咨询
|
联系我们
扫二维码关注公众号
网站首页
网站建设
短视频
网站推广
网站模板
客户案例
资讯动态
关于我们
网站首页
网站建设
短视频
网站推广
网站模板
客户案例
资讯动态
关于我们
位置:
广州松河
>
技术支持
> C#排队处理DEMO
C#排队处理DEMO
来源:网络整理 时间:2023/2/14 0:41:41 共
3661
浏览
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace TestWait
{
class Program
{
public static Queue<Proccess> QueueMessage = new Queue<Proccess>();
static int count = 15;//只有15张票
static void Main(string[] args)
{
StartProccess();
//模拟并发 20个人同时买票
for (int i = 0; i < 20; i++)
{
ThreadPool.QueueUserWorkItem(new WaitCallback ((o)=>{
string index = (string)o;
Bay(index);
}),"客户端"+i);
}
Console.ReadKey();
}
//购买服务
static bool Bay(String val)
{
Proccess p = new Proccess();
p.val = val;
p.ManualReset = new ManualResetEvent(false);
//lock (QueueMessage)
{
QueueMessage.Enqueue(p);//消息入列
Console.WriteLine("入列:" + val);
}
WaitHandle.WaitAll(new WaitHandle[] { p.ManualReset });//等待处理完成
return p.Result;
}
//启动处理线程
static void StartProccess()
{
ThreadPool.QueueUserWorkItem(new WaitCallback(ProccessThread));
}
//处理线程
static void ProccessThread(Object obj)
{
while (true)
{
if (QueueMessage.Count > 0)
{
Proccess message = QueueMessage.Dequeue();
if (count <= 0)
{
message.Result = false;
Console.WriteLine("处理失败:" + message.val);
}
else
{
message.Result = true;
Console.WriteLine("处理成功:" + message.val);
}
count--;
if (message.ManualReset != null)
message.ManualReset.Set();
}
else
{
//如果没有消息 停止3s
Thread.Sleep(3000);
}
}
}
}
class Proccess{
public ManualResetEvent ManualReset
{
get;
set;
}
public bool Result
{
get;
set;
}
public String val
{
get;
set;
}
}
}
版权说明:
本网站凡注明“广州松河 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
相关主题:
大新网站建设厂家
营销型网站建设实践报告
建设网站的便捷功能
营销网站建设运营中心
建设企业网站服务内容
安徽测试网站建设维修电话
娄底引流网站建设方法
白山网站建设代理商
青羊建设企业网站
网站外链建设有哪些
·上一条:
清除浏览器input中缓存
|
·下一条:
C#中sealed关键字
同类资讯
windows bat脚本实现ftp自动下载 删除
请问这个bat文件是怎么消除快捷方式的小箭头的?
BAT编程
批处理bat命令--获取当前盘符和当前目录和上级目录
让服务器iis支持.apk文件下载的设置方法
Xamarin Mono Android实现“再按一次退出程序”
解决Visual Stuido 2012中Mono For Androi
Mono For Android 如何修改程序图标教程(修改APP图标方
Photoshop滤镜制作帅气靓丽圣诞节字样
如何将bat批处理文件加壳转换成exe文件
用bat 打开一个网页10秒后关闭,怎么写呢连批处理一起关闭
如何让别人下载了我的BAT文件后在桌面显示快捷方式和我设置的图标
批处理bat如何下载FTP服务器上某目录中文件?
用ftp命令实现上传和下载
jQuery实现页内查找相关内容
C#刮刮卡随机数概率算法
解析C#中[],List,Array,ArrayList的区别及应用
C# 中使用JSON - DataContractJsonSeriali
C#使用MemoryStream类读写内存
C#如和将List<>转为Json格式
资讯动态
公司新闻
互联网资讯
电商资讯
优化推广
技术支持
关于我们
公司简介
企业文化
服务项目
公司新闻
服务项目
网站建设
网站推广
品牌策划
移动应用
服务支持
在线咨询
服务流程
产品报价
售后服务
联系我们
代理加盟
付款方式
在线留言
联系方式
联系方式
电话:400-963-0016
邮箱:sales@itwy.com
QQ:250211130
微信:18520775521
Copyright © 广州松河信息科技有限公司 2005-2025 版权所有
粤ICP备16019765号
广州松河信息科技有限公司 版权所有
18520775521
QQ洽谈
sales@itwy.com