当前位置: 首页 > news >正文

网站建设移动网络公司关键词网站排名查询

网站建设移动网络公司,关键词网站排名查询,公司装修设计图片,中国化工网官网 网站建设场景是这样#xff0c;假设有一台设备会触发类型为Alarm的告警信号#xff0c;并把信号添加到一个Queue结构中#xff0c;每隔一段时间这个Queue会被遍历检查#xff0c;其中的每个Alarm都会调用一个相应的处理方法。问题在于#xff0c;检查机制是基于多线程的#xff0… 场景是这样假设有一台设备会触发类型为Alarm的告警信号并把信号添加到一个Queue结构中每隔一段时间这个Queue会被遍历检查其中的每个Alarm都会调用一个相应的处理方法。问题在于检查机制是基于多线程的有潜在的并发可能当某个Alarm被添加的同时刚好又在遍历Queue就会抛出异常说Queue发生改变。产生问题的代码如下public class AlarmQueueManager{    public ConcurrentQueueAlarm alarmQueue new ConcurrentQueueAlarm();    System.Timers.Timer timer;    public AlarmQueueManager()    {        timer new System.Timers.Timer(1000);        timer.Elapsed new System.Timers.ElapsedEventHandler(timer_Elapsed);        timer.Enabled true;    }    void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)    {        DeQueueAlarm();    }    private void DeQueueAlarm()    {        try        {            foreach (Alarm alarm in alarmQueue)            {                SendAlarm(alarm);                alarmQueue.TryDequeue();                //having some trouble here with TryDequeue..            }        }        catch        {        }    }}那么如何让DeQueueAlarm保证线程安全呢 为了简化描述用以下两种写法来对比介绍。// 写法一private void DeQueueAlarm(){    Alarm alarm;    while (alarmQueue.TryDequeue(out alarm))        SendAlarm(alarm);} // 写法二private void DeQueueAlarm(){    foreach (Alarm alarm in alarmQueue)        SendAlarm(alarm);}参考MSDN的说法ConcurrentQueueT.GetEnumerator 。The enumeration represents a moment-in-time snapshot of the contents of the queue. It does not reflect any updates to the collection after GetEnumerator was called. The enumerator is safe to use concurrently with reads from and writes to the queue.所以两种写法在多线程并发访问的差别就是使用TryQueue会确保每个Alarm只会被处理一次但哪个线程处理哪个Alarm是不确定的。使用foreach循环会确保参与争用的所有线程都同等无差别地访问Queue的全部Alarm就像Queue被重复处理了n遍。因此如果想要严格控制每个Alarm只会被处理一次用完就移除的话那就使用第一种写法。原文地址 http://www.cnblogs.com/BeanHsiang/p/8733059.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://www.pierceye.com/news/15584/

相关文章:

  • 网站建设方案书模板下载做网站的要多少钱
  • 苏州微信网站建设应用制作下载
  • 土巴兔网站开发技术微商引流客源最快的方法
  • 视频网站建设费用明细开发软件需要什么软件
  • 专业的网站优化苏中建设集团网站
  • 七米网站建设推广优化前端个人介绍网站模板下载
  • 宁波网站建设制作订做摄影设计工作室
  • 栏目手机版 企业网站免费进出货管理软件app
  • 做网站注意哪些个人域名申请的方法
  • 南川集团网站建设模板网站案例
  • 成都网站建设蜀美网络成免费的crm是正规还是仿
  • 精美旅游网站模板大连网络建站公司分析
  • 网站开发南城科技大厦张店网站设计
  • 高端网站开发制作成都营销型网站建设
  • 长沙网站开发长沙网站建设浏览器打开网址404
  • 电脑系统优化软件排行榜做网站seo赚钱吗
  • 指纹定制网站服装网络营销策划书
  • 网站建设默认字体又拍云wordpress全站cdn
  • 外贸网站 语言做网站维护需要学什么
  • 网站的流量怎么赚钱中国优秀网站
  • 兰州优秀网站推广免费软件大全
  • 长沙网站搭建关键词排名asp做网站简介页面
  • 网站建设物理架构做膜结构那个网站好
  • wap网站制作软件网站开发引用思源黑体
  • 温州建站费用拼团购物网站怎么做
  • 如何在后台做网站流程中山精品网站建设机构
  • 建手机网站wordpress生成纯html
  • 中文网站外链查询工具网站有关于我们的好处
  • 百度收录效果好的网站大连搜狗
  • 怎样自学开网店郑州seo优化顾问阿亮