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

公众号建网站整合营销传播方案案例

公众号建网站,整合营销传播方案案例,了解网站建设的流程,什么网站做office可以赚钱什么是线程? 首先我们要弄明白什么是线程,线程和线程池有啥区别? 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/461640.html

相关文章:

  • 怎样做网络销售网站百度前三推广
  • 网站修改思路四平网络推广
  • 邯郸营销型网站解析域名网站
  • 如何做网站 优帮云什么是网络推广营销
  • 山东省济宁市最新消息广东seo推广哪里好
  • 如何用自家电脑做网站服务器什么推广方法是有效果的
  • wordpress标题代码调用武汉seo招聘
  • 网站做的一样算侵权吗重庆百度快速优化
  • 做一家网站费用吗小程序开发需要哪些技术
  • php做网站需要什么技术深圳关键词排名推广
  • 概念网站源码网站设计制作
  • 如何不花钱建设网站重庆网站seo诊断
  • 辽源网站建设公司网页制作素材模板
  • 焊枪公司网站怎么做互联网推广运营
  • 关于苏宁易购网站建设的不足之处网络营销pdf
  • 做动态网站需要什么书上海网站快速排名提升
  • 做国外贸易的网站seo权重优化
  • 推广联盟网站怎么做seo排名软件价格
  • 哪家做网站性价比高dw网页制作详细步骤
  • 网站建设找汉狮营销方案怎么写模板
  • 资讯类网站怎么做营销渠道模式有哪些
  • 网站怎么做图片动态图片不显示了seo前景
  • 汉口网站建设制作自己手机怎么免费做网站
  • 网站 开发 合同广东广州疫情最新情况
  • wordpress增加登录账户优化加速
  • 网站策划编辑是干嘛的北京软件培训机构前十名
  • 门户网站建设标准简述获得友情链接的途径
  • 湖北做网站网址导航下载到桌面
  • html中秋节网页制作代码长沙百度网站推广优化
  • 公司网站的定义谷歌搜索官网