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

安阳网站建设网络策划是做什么的

安阳网站建设,网络策划是做什么的,温州集团网站建设,芜湖网站制作文章目录实例一:【方便理解,常用!】源码:运行效果:实例二:【重在理解代码本身】源码:运行效果:参考:实例一:【方便理解,常用!】 跨线…

文章目录

  • 实例一:【方便理解,常用!】
    • 源码:
    • 运行效果:
  • 实例二:【重在理解代码本身】
    • 源码:
    • 运行效果:
  • 参考:

实例一:【方便理解,常用!】

跨线程更新进度条【事件触发(进度条值增加的方法在另一个命名空间下的类中)】

源码:

AddNum.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ProgressBarAddNum
{public class AddNum{public static int Num = 0;public delegate void UpdateProgress(int index);public static event UpdateProgress onUpdateProgress;public static void Add(){UpdateProgressMethod(Num > 100 ? 0 : Num);Num+=2;          }public static void UpdateProgressMethod(int i){if (onUpdateProgress != null){onUpdateProgress.BeginInvoke(i, null, null);}}}
}

Form1.cs
在这里插入图片描述

using ProgressBarAddNum;
using System;
using System.Threading;
using System.Windows.Forms;namespace WindowsFormsApp1
{public partial class Form1 : Form{public Form1(){InitializeComponent();AddNum.onUpdateProgress += AddNum_onUpdateProgress;//注意:此事件绑定只绑定一次,不能多次绑定}public static Thread thread;private void button1_Click(object sender, EventArgs e){AddNum.Num = 0;thread = new Thread(Process);thread.IsBackground = true;thread.Start();}public delegate void UpdateProgress(int index);private void AddNum_onUpdateProgress(int index){if (progressBar1.InvokeRequired){UpdateProgress dus = new UpdateProgress(AddNum_onUpdateProgress);this.BeginInvoke(dus, new object[] { index });//方法一//this.BeginInvoke(dus, index);//方法二//progressBar1.Invoke(dus, new object[] { index });//方法三:也可以同时更新textBox1的值【???】//progressBar1.Invoke(dus, index);//方法四:也可以同时更新textBox1的值【???】}else{progressBar1.Value = index;textBox1.Text = index.ToString();//注意:同时更新textBox1的值}}private void Process(){while (true){if (AddNum.Num <= 100){AddNum.Add();Thread.Sleep(50);}else{break;}}}private void button2_Click(object sender, EventArgs e){if (thread != null){thread.Abort();thread = null;}progressBar1.Value = 0;textBox1.Text = "0";}}
}

运行效果:

在这里插入图片描述

实例二:【重在理解代码本身】

C#中的事件是建立在委托的基础上,标准的事件模型应该包括以下几点:

  • 声明一个用于定义事件的委托,这里用系统自带的泛型委托原型EventHandler,如:public delegate void EventHandler(object sender,TEventArgs e);这里面的TEventArgs是由我们自定义的参数类型,继承自EventArgs基类
  • 事件参数的名称以EventArgs结束
  • 声明事件的委托原型即EventHandler,它的返回值为void
  • 声明事件的委托原型即EventHandler,它有两个参数:sender和e,sender表示事件触发者,e表示事件触发时的参数
  • 事件的声明是在普通委托声明的前面加上,event关键字,如:public event EventHandler FileUploaded;

源码:

文件下载时,要实时更新进度条,这时更新进度的方法就应该由下载类在下载的同时根据实时的下载进度利用事件去同步更新进度条的值。代码如下:
在这里插入图片描述

using System;
using System.Threading;
using System.Windows.Forms;namespace WindowsFormsApp2
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void ShowProcess(object sender, FileUploaderEventArgs e){//定义委托Action t = () =>{progressBar1.Value = e.FileProgress;label1.Text = e.FileProgress.ToString();};//跨线程操作this.BeginInvoke(t);Thread.Sleep(100);//【注意】:触发事件后的方法要执行完毕,才会退出while中的触发事件代码}private void button1_Click_1(object sender, EventArgs e){FileUploader f1 = new FileUploader();f1.FileUploaded += ShowProcess;                  //绑定事件ThreadPool.QueueUserWorkItem((a) => f1.Upload());//加入线程池}}/// <summary>/// 文件下载类/// </summary>class FileUploader{public event EventHandler<FileUploaderEventArgs> FileUploaded;//定义事件public void Upload(){var e = new FileUploaderEventArgs() { FileProgress = 0 };while (e.FileProgress < 100){//DoSomething();//执行一些下载任务e.FileProgress++;FileUploaded(this, e);//触发事件//Thread.Sleep(100);//【注意】:或者注释掉上边的代码,使用这个,实际中更常用}}}/// <summary>/// 自定义参数/// </summary>class FileUploaderEventArgs : EventArgs{public int FileProgress { get; set; }}
}

运行效果:

在这里插入图片描述

参考:

https://www.cnblogs.com/maitian-lf/p/3654146.html

http://www.jinmujx.cn/news/77734.html

相关文章:

  • 西安至诚网站建设网络营销教学大纲
  • 下载并安装百度地图西安seo教程
  • 惠州酒店网站建设南宁网站建设服务公司
  • 网络销售工作怎么样天津seo标准
  • 手机网站可以做英文版本吗如何制作网页
  • wordpress整站cdn我想在百度上发布广告怎么发
  • 做网站需要多久适合seo的建站系统
  • 大连模板网建站nba最新交易动态
  • 网站建设行业新闻无锡百度快照优化排名
  • 网站开发项目人员安排如何创建网站站点
  • 网站双线测试百度网站怎么优化排名
  • 网站怎么让百度收录采集站seo提高收录
  • 做公众号的素材网站知乎软文推广
  • 高端手机网站建设需要多少钱促销策略
  • 个人在线免费公司注册德阳网站seo
  • 国外网站赚钱能翻到国外的浏览器
  • 网站建设制度媒体网络推广价格优惠
  • 网站建设费 什么科目今天发生了什么重大新闻
  • 门户网站建设流程今天上海最新新闻事件
  • 备案期间怎么做网站重庆网站快速排名优化
  • 做盗版小说网站怎么样域名免费注册0元注册
  • 明星粉丝网站怎么做的昆明seo建站
  • 北京网站建设公司升上去推广方式有哪些
  • 做网站推广微信叫什么网名好英文seo推广
  • 门户网站功能模块国家市场监督管理总局
  • 营销型网站案例 注册公司长沙seo关键词排名优化
  • 镇江网站建设推广公司台州专业关键词优化
  • 网站建设网页制作教程网站推广计划书范文
  • 张家口百度免费做网站搜狗指数
  • 做网站更赚钱吗门户网站制作