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

宛城区网站建设保定网络营销网站建设

宛城区网站建设,保定网络营销网站建设,网络营销方法和手段,餐厅网站建设[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、D…[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi、XCode、Eclipse、C Builder 技能种类: 逆向 驱动 磁盘 文件 研发领域: Windows应用软件安全/Windows系统内核安全/Windows系统磁盘数据安全/macOS应用软件安全 项目经历: 磁盘性能优化/文件系统数据恢复/文件信息采集/敏感文件监测跟踪/网络安全检测 [序言] 如果大家认真地阅读了[原创][3]探究C#多线程开发细节-“用ConcurrentQueueT解决多线程的无顺序性的问题这篇文章, 就会发现里面的多线程同步机制是非常低效且愚蠢的. 那么如何解决这样的问题呢 那就是利用[原创][4]探究C#多线程开发细节-初步体验ManualResetEvent类带来的同步效果介绍的事件机制来处理这类棘手的问题. [利用AutoResetEvent类来强制10个线程依次结束, 大概编程逻辑如下: ]1 for循环创建每一个线程的时候, 为每个线程赋予一个索引号和AutoResetEvent类变量.2 为每一个线程对应的AutoResetEvent类变量放入队列ConcurrentQueueT中.3 当每个线程要结束之前, 都执行AutoResetEvent的WaitOne()等待.  通过上面的3步骤处理, 就可以达到10个线程依次结束效果.比如: 0号线程结束之后, 轮到1号线程结束. 1号线程结束之后, 轮到2号线程结束...依次类推. [10个线程依次结束的过程中, 它们之间是如何响应的呢?] 假设如下情况:1 2号线程比1号线程提前准备进入终点, 但是在进入终点之前执行了WaitOne()等待, 目的就是等待1号线程是否已经进入终点了. 2 此时1号线程没有进入终点, 那么2号线程会一直在终点前等待1号线程.3 当1号线程进入终点之后, 就针对2号线程的AutoResetEvent执行一次set()通知2号线程, 我已经进入终点了, 轮到你进去了. 依次类推可以应用到其他线程的关系, 就是这简单的3步骤内部通信逻辑, 就能让0号线程~9号线程, 有序的步入终点(即结束线程任务). [下面是一套完整的代码] 这里要特别理解这2行代码 AutoResetEvent event_Next mpr_cq_ThreadEvent.ToArray()[mpu_int_ThreadIndex 1]; event_Next.Set(); public partial class Form_Main : Form{private ConcurrentQueueAutoResetEvent mpr_cq_ThreadEvent new ConcurrentQueueAutoResetEvent();public class Thread_Run{public int mpu_int_ThreadIndex;private Actionint mpr_action_UpdateWaiteInfo;private ConcurrentQueueAutoResetEvent mpr_cq_ThreadEvent;private AutoResetEvent mpr_event_State;public Thread_Run(Actionint action_param_UpdateWaiteInfo, ref ConcurrentQueueAutoResetEvent cq_param_ThreadEvent, object obj_param_EventState){mpr_action_UpdateWaiteInfo action_param_UpdateWaiteInfo;mpr_cq_ThreadEvent cq_param_ThreadEvent;mpr_event_State (AutoResetEvent)obj_param_EventState;}public int mpu_fun_ShowIndex(){return mpu_int_ThreadIndex;}public void mpu_pro_StartThread(){Thread class_Thread new Thread(Thread_Exe);class_Thread.Start();}private void Thread_Exe(){if (mpu_int_ThreadIndex ! 0){// 如果不是第一个线程则直接等待mpr_event_State.WaitOne();}//调用委托方法来更新UImpr_action_UpdateWaiteInfo?.Invoke(mpu_int_ThreadIndex);// 通知当前线程的下一个线程放弃等待,可直接返回// 比如当前是1号线程那么它的下一个就是2号线程if (mpu_int_ThreadIndex 1 mpr_cq_ThreadEvent.Count()){AutoResetEvent event_Next mpr_cq_ThreadEvent.ToArray()[mpu_int_ThreadIndex 1];event_Next.Set();}}}// End Thread_Run()public Form_Main(){InitializeComponent();}public void mpu_pro_UpdateWaiteInfo(int int_param_ThreadIndex){if (InvokeRequired){this.Invoke((MethodInvoker)delegate {lb_WaitInfo.Text (Environment.NewLine string.Format({0} 号线程已创建成功., int_param_ThreadIndex));});}}private void Bn_StartThread_Click(object sender, EventArgs e){// 启动10个线程for (int int_Index 0; int_Index 10; int_Index){var var_ThreadEvent new AutoResetEvent(false);mpr_cq_ThreadEvent.Enqueue(var_ThreadEvent);Thread_Run class_ThreadRun new Thread_Run(mpu_pro_UpdateWaiteInfo, ref mpr_cq_ThreadEvent, var_ThreadEvent);class_ThreadRun.mpu_int_ThreadIndex int_Index;class_ThreadRun.mpu_pro_StartThread();}}} [结尾] 这份代码的完美度达到了95%, 但还有更完美的写法, 就是利用ConcurrentDictionaryT类来代替ConcurrentQueueT类, 并管理AutoResetEvent事件. 下一篇我们将会继续优化代码
http://www.zqtcl.cn/news/770860/

相关文章:

  • 淘宝客cms网站建设K12网站怎么建设
  • 专业门户网站开发浙江省湖州艺术与设计学校官网
  • 企业网站搭建价格搭建平台的另一种说法
  • 网站开发框架桂林人论坛风姿摄影
  • 吉林省建设安全信息网站网站服务器和空间有什么区别
  • 百度制作网站怎么去掉2345网址导航
  • 深圳网站建设有限公司 2019哪些建材网站可以做宣传
  • 西安阿里云网站建设一建报名资格条件
  • 聊城网站优化wordpress循环该分类子分类
  • 帮网站做关键词排名优化创造网站需要多少钱
  • 广西网站建设推荐wordpress 宣布停止
  • 专注网站制作青岛景观设计公司排名
  • 安庆做网站网站代理建设网站观澜
  • 网站开发需求收集 模板cms做门户网站
  • dw网站首页的导航怎么做有大佬给个网址吗
  • 一个网站怎么做聚合洛可可设计公司贾伟
  • 什么是优化型网站网页设计作业在线网站首页
  • 关于网站建设广告词英文案例网站
  • 有哪些可以做策划方案的网站国家域名
  • vk网站做婚介做seo排名好的网站
  • 广州企业网站建设公司苏州建网站提
  • html如何做购物网站天元建设集团有限公司法人代表
  • 教育培训机构排名seo是搜索引擎营销
  • 做奢侈品网站有哪些沧州手机建站哪家好
  • 德州网站网站建设广西房管局官网
  • 白石桥做网站公司seo顾问服务四川
  • 网站建设注册哪类商标十大网页设计公司
  • 网站建设的源代码有什么作用金华网站建设优化技术
  • 个人网站申请做瞹瞹嗳视频网站在线观看
  • 做网站 融资玉石网站建设的定位