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

做海报素材网站推荐建筑工程招标网站

做海报素材网站推荐,建筑工程招标网站,做网站的空间在哪买,安阳哪有做网站的现实的例子 三个线程都是while(true)的循环体 A线程:采集数据 B线程:画曲线 C线程:存数据库 AutoResetEvent类 AutoResetEvent 是一个线程同步的类,它提供了一种机制,允许一个或多个线程等待直…

现实的例子

三个线程都是while(true)的循环体

A线程:采集数据

B线程:画曲线

C线程:存数据库

AutoResetEvent类 

AutoResetEvent 是一个线程同步的类,它提供了一种机制,允许一个或多个线程等待直到接收到信号,然后继续执行。

以下是 AutoResetEvent 的一些常用成员:

  • WaitOne():使当前线程等待接收信号。如果没有收到信号,则当前线程将被阻塞,直到接收到信号。
  • Set():发送信号,唤醒一个正在等待的线程。如果没有线程在等待,下一个调用 WaitOne() 的线程将立即被唤醒。
  • Reset():重置事件状态,将其设置为非终止状态。AutoResetEvent 类在调用 Set() 方法后会自动调用 Reset() 方法将事件状态重置为非终止状态。

 代码

 public partial class Form4 : Form{AutoResetEvent A;AutoResetEvent B;AutoResetEvent C;int a;public Form4(){InitializeComponent();A = new AutoResetEvent(false);B = new AutoResetEvent(false);C = new AutoResetEvent(false);Task.Factory.StartNew(() =>{for (int i = 0; i < 100; i++){A.WaitOne();Invoke(new Action(() => label1.Text = i.ToString()));Thread.Sleep(500);B.Set();}});Task.Factory.StartNew(() =>{for (int i = 0; i < 100; i++){B.WaitOne();Invoke(new Action(() => label2.Text = i.ToString()));Thread.Sleep(500);C.Set();}});Task.Factory.StartNew(() =>{for (int i = 0; i < 100; i++){C.WaitOne();Invoke(new Action(() => label3.Text = i.ToString()));Thread.Sleep(500);A.Set();}});}private void button1_Click(object sender, EventArgs e){A.Set();}}

这段代码演示了如何使用 AutoResetEvent 实现两个线程操作按钮的功能。

首先,在 Form4 类中定义了三个 AutoResetEvent 对象:ABC,以及一个整型变量 a。然后在构造函数中初始化这些对象。

接下来,通过使用 Task.Factory.StartNew() 方法创建三个任务,并在每个任务内部编写逻辑。

第一个任务使用 for 循环来迭代 100 次。在每次循环中,它调用 A.WaitOne() 方法等待信号,然后使用 Invoke() 方法将计数值赋值给 label1.Text 属性,并在界面上显示出来。然后线程休眠 500 毫秒,并通过 B.Set() 方法发送信号给第二个任务。

第二个任务也使用 for 循环来迭代 100 次,类似于第一个任务。它调用 B.WaitOne() 方法等待信号,然后使用 Invoke() 方法将计数值赋值给 label2.Text 属性,并在界面上显示出来。然后线程休眠 500 毫秒,并通过 C.Set() 方法发送信号给第三个任务。

第三个任务同样使用 for 循环来迭代 100 次,类似于前两个任务。它调用 C.WaitOne() 方法等待信号,然后使用 Invoke() 方法将计数值赋值给 label3.Text 属性,并在界面上显示出来。然后线程休眠 500 毫秒,并通过 A.Set() 方法发送信号给第一个任务。

最后,在界面上有一个按钮 button1,当点击按钮时,会调用 A.Set() 方法,发送信号给第一个任务。

通过这样的逻辑和信号交互,三个任务之间实现了循环操作,每个任务依次运行并更新界面上的标签文本,从而实现了两个线程操作按钮的功能。

 运行截图

http://www.yayakq.cn/news/127069/

相关文章:

  • 温州网页网站制作免费seo排名网站
  • 网站备案 有效期wordpress tinymce 代码高亮
  • 杭州亚运村建设指挥部网站流程图制作网站
  • 如果只做p2p种子搜索网站网站高端设计
  • 网站管理制度建设的必要性免费flash网站源码
  • 做诱导网站企业网站开发模型图
  • 山东规划 建设部门的网站extract wordpress
  • 手机怎么制作网站教程视频国外工业设计作品集
  • 响应式 网站建设网站不稳定有什么影响
  • 网页设计跟网站建设要加强分院网站建设
  • 学校网站建设案例网站集群怎么做
  • 网站后台如何上传附件毕业设计网站建设 论文
  • php网站开发软件免费搭建自己的官网
  • 深圳企业网站改版网页游戏排行榜2016
  • 南昌做网站流程江阴市建设局官网站
  • 企业网站 管理岳阳seo快速排名
  • 深圳专业建站系统建站公司网站建设与管理好学吗
  • 网上做平面设计的网站甜品网站模板代码
  • 丽江网站建设龙华做棋牌网站建设多少钱
  • 专业网站制作全包wordpress动漫风格
  • 门户网站建设采购福建省城乡建设信息网站
  • 网站建设实训总结报告在线营销单页网站制作
  • 莆田社交网站网站详细报价
  • 做网站做得好的公司上海网站建设的报价
  • 铜陵网站建设维护廊坊做网站上海公司电话
  • 个人如何建立网站东莞市建设厅官方网站
  • 电商网站建设与运营实训阿克苏建设租房信息阿克苏租房网站
  • 网页浏览器大全seo综合查询站长工具
  • 沈阳高端网站制作公司哪家好网站树状结构图怎么做
  • 学做网站和推广要多久网站建设系统改版