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

企业网站网页设计费用外链平台有哪些

企业网站网页设计费用,外链平台有哪些,zol软件下载,b2b是什么意思通俗讲解什么是线程? 首先我们要弄明白什么是线程,线程和线程池有啥区别? C# 多线程应用(同步异步)_c# 异步线程-CSDN博客 补充:ManualResetEvent 的使用 ManualResetEvent 是一种线程同步机制,用于控制一个或者多个线程的执…

什么是线程?

首先我们要弄明白什么是线程,线程和线程池有啥区别?

C# 多线程应用(同步异步)_c# 异步线程-CSDN博客

 补充:ManualResetEvent 的使用

ManualResetEvent 是一种线程同步机制,用于控制一个或者多个线程的执行。它允许一个线程发出信号,通知其他等待的线程继续执行。ManualResetEvent 的初始状态可以是有信号(true)或无信号(false),通过调用 Set() 和Reset() 方法来改变其状态

基本用法

ManualResetEvent 的基本用法

  1. 创建 ManualResetEvent 实例    ManualResetEvent  mre = new ManualResetEvent(false);
  2. 线程等到信号:  mre.WaitOne();   //  阻塞当前线程,直到收到信号
  3. 发出信号: mre.Set();    // 发出信号,所有等待的线程将继续执行
  4. 重置信号:mre.Reset();   //将状态重置为无信号,阻塞后续调用WaitOne 的线程 

 控件

  • Proccceed 的功能是发出信号
  • reset 的功能是重置信号   

 展示效果

 实例化 ManualResetEvent

 //因为有4个线程,所以实例化四个static ManualResetEvent manual=new ManualResetEvent(true);static ManualResetEvent manual2=new ManualResetEvent(true);static ManualResetEvent manual3=new ManualResetEvent(true);static ManualResetEvent manual4=new ManualResetEvent(true);

 递进增添1

  private void addNum(object obj){while (true){object[]obb=(object[])obj;TextBox tb = (TextBox)obb[0];//每次添加1tb.Text=(Convert.ToInt16(tb.Text)+1).ToString();ManualResetEvent mre = (ManualResetEvent)obb[1];//防止线程阻塞mre.WaitOne();Thread.Sleep(1000);}}

调用线程池、总功能实现

 private void btn_all_Click(object sender, EventArgs e){//创建了两个元素的数组//第一个是textBox//第二个是manualobject[] ob1 = new object[2] { textBox1, manual };object[] ob2 = new object[2] {textBox2,manual2};object[] ob3 = new object[2] {textBox3,manual3};object[] ob4 = new object[2] {textBox4,manual4 };ThreadPool.QueueUserWorkItem(addNum, ob1);ThreadPool.QueueUserWorkItem(addNum, ob2);ThreadPool.QueueUserWorkItem(addNum, ob3);ThreadPool.QueueUserWorkItem(addNum, ob4);}

声明方法

private void operate(ManualResetEvent s)
{s.Set();
}
private void Stop(ManualResetEvent v)
{v.Reset();
}

发出信号功能

 private void btn_pro1_Click(object sender, EventArgs e){operate(manual);}private void btn_pro2_Click(object sender, EventArgs e){operate(manual2);}private void btn_pro3_Click(object sender, EventArgs e){operate(manual3);}private void btn_pro4_Click(object sender, EventArgs e){operate(manual4);}

重置信号功能

 private void btn_stop1_Click(object sender, EventArgs e){Stop(manual);}private void btn_stop2_Click(object sender, EventArgs e){Stop(manual2);}private void btn_stop3_Click(object sender, EventArgs e){Stop(manual3);}private void btn_stop4_Click(object sender, EventArgs e){Stop(manual4);}

线程总代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;namespace _15.Using_ThreadPool
{public partial class Form1 : Form{public Form1(){InitializeComponent();CheckForIllegalCrossThreadCalls=false;}//因为有4个线程,所以实例化四个static ManualResetEvent manual=new ManualResetEvent(true);static ManualResetEvent manual2=new ManualResetEvent(true);static ManualResetEvent manual3=new ManualResetEvent(true);static ManualResetEvent manual4=new ManualResetEvent(true);private void btn_all_Click(object sender, EventArgs e){//创建了两个元素的数组//第一个是textBox//第二个是manualobject[] ob1 = new object[2] { textBox1, manual };object[] ob2 = new object[2] {textBox2,manual2};object[] ob3 = new object[2] {textBox3,manual3};object[] ob4 = new object[2] {textBox4,manual4 };ThreadPool.QueueUserWorkItem(addNum, ob1);ThreadPool.QueueUserWorkItem(addNum, ob2);ThreadPool.QueueUserWorkItem(addNum, ob3);ThreadPool.QueueUserWorkItem(addNum, ob4);}private void addNum(object obj){while (true){object[]obb=(object[])obj;TextBox tb = (TextBox)obb[0];tb.Text=(Convert.ToInt16(tb.Text)+1).ToString();ManualResetEvent mre = (ManualResetEvent)obb[1];mre.WaitOne();Thread.Sleep(1000);}}private void operate(ManualResetEvent s){s.Set();}private void Stop(ManualResetEvent v){v.Reset();}private void btn_pro1_Click(object sender, EventArgs e){operate(manual);}private void btn_pro2_Click(object sender, EventArgs e){operate(manual2);}private void btn_pro3_Click(object sender, EventArgs e){operate(manual3);}private void btn_pro4_Click(object sender, EventArgs e){operate(manual4);}private void btn_stop1_Click(object sender, EventArgs e){Stop(manual);}private void btn_stop2_Click(object sender, EventArgs e){Stop(manual2);}private void btn_stop3_Click(object sender, EventArgs e){Stop(manual3);}private void btn_stop4_Click(object sender, EventArgs e){Stop(manual4);}}
}

http://www.dtcms.com/wzjs/151852.html

相关文章:

  • 佳木斯做网站公司谷歌网页版
  • 电子商务网站如何进行维护和推广电子商务营销模式有哪些
  • 网站建设与管理习题一东莞网络公司电话
  • 建设银行购物网站长治网站seo
  • 网站建设需要的技术人员郑州网站关键词排名技术代理
  • wordpress怎么做企业网站灰色推广
  • 做鲜榨果汁店网站百度账号登录
  • 吉安建设公司网站餐饮营销方案100例
  • 普通网站做关键词seo公司真实推荐
  • 可信网站认证价格盘多多百度网盘搜索引擎
  • 做网站建设的平台哪有培训seo
  • 网站建设 月光博客运营推广计划
  • 政务网站建设相关文件爱上链外链购买交易
  • abp网站开发重庆电子商务网站seo
  • 网站创建东莞公司seo优化
  • 网站联合推广方案济南seo整站优化招商电话
  • 乐清网站建设乐清推广关键词外包
  • dede一键更新网站成人大学报名官网入口
  • 网站建设 企业观点成都seo技术
  • 网站 百度地图yandex网站推广
  • 网站开发技术主题2022年最近一周新闻大事
  • 厦门建设网站青岛官网seo方法
  • 设计发明的网站班级优化大师的功能
  • 用哪个程序做网站收录好6网站里的友情链接
  • 做网站广告网页恶意点击推广神器
  • 做视频的网站甘肃百度推广电话
  • 21天学会网站开发网站关键词排名优化电话
  • 服装 公司 网站建设东莞优化网站关键词优化
  • 金本网站建设设计网络营销的用户创造价值
  • 做网站对企业的好处百度区域代理