c#异步委托代理的例子
来源:互联网 发布:软件测试培训价格 编辑:程序博客网 时间:2024/06/07 02:52
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsApplication4
{
public partial class Form1 : Form
{
//声明代理类型
delegate void delegateTest(int p);
//为代理类型创建新的实例
private delegateTest test=null;
//为了不影响界面响应,需要新建一个线程
Thread th = null;
public Form1()
{
InitializeComponent();
//为线程初始化
th = new Thread(new ThreadStart(run));
//初始化代理实例
test = new delegateTest(testD);
}
private void button1_Click(object sender, EventArgs e)
{
//方法通过调用线程开始
th.Start();
}
/// <summary>
/// 实际进行循环操作的函数
/// </summary>
void run()
{
for (int i = 0; i <= 100; i++)
{
///每次需要长时间处理的过程
Thread.Sleep(100);
//调用代理的方法
this.Invoke(test, i);
}
}
/// <summary>
/// 处理界面元素显示进度
/// </summary>
/// <param name="p"></param>
void testD(int p)
{
//处理界面元素显示进度
progressBar1.Value = p;
label1.Text = p+"%";
}
private void stop_Click(object sender, EventArgs e)
{
th.Abort();
this.Invoke(test, 0);
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace WindowsApplication4
{
public partial class Form1 : Form
{
//声明代理类型
delegate void delegateTest(int p);
//为代理类型创建新的实例
private delegateTest test=null;
//为了不影响界面响应,需要新建一个线程
Thread th = null;
public Form1()
{
InitializeComponent();
//为线程初始化
th = new Thread(new ThreadStart(run));
//初始化代理实例
test = new delegateTest(testD);
}
private void button1_Click(object sender, EventArgs e)
{
//方法通过调用线程开始
th.Start();
}
/// <summary>
/// 实际进行循环操作的函数
/// </summary>
void run()
{
for (int i = 0; i <= 100; i++)
{
///每次需要长时间处理的过程
Thread.Sleep(100);
//调用代理的方法
this.Invoke(test, i);
}
}
/// <summary>
/// 处理界面元素显示进度
/// </summary>
/// <param name="p"></param>
void testD(int p)
{
//处理界面元素显示进度
progressBar1.Value = p;
label1.Text = p+"%";
}
private void stop_Click(object sender, EventArgs e)
{
th.Abort();
this.Invoke(test, 0);
}
}
}
- c#异步委托代理的例子
- c#异步委托委托的使用
- C#委托的异步使用
- C#异步委托的用法
- C#委托的异步使用
- C#委托的异步调用
- C#委托的异步调用
- C#异步委托的使用
- C#委托的异步调用
- c#委托的异步调用
- C#委托的异步调用
- C#委托的异步调用
- C#委托的异步调用
- C#一个委托的例子
- C# 关于委托的例子
- C#的事件(Event)和代理/委托(Delegate)例子
- C#异步调用的例子
- C#异步调用的例子
- 把图片保存到XML中
- 学习asp.net完整的流程
- C# 2.0 泛型编程
- NOKIA-5110 ARM7实现
- c#中的delegate和event,基本概念的认识
- c#异步委托代理的例子
- C#自定义事件实现不同窗体间的通讯
- C#中将DataSet的内容写成XML
- 单片机破解的常用方法及应对策略
- AJAX原理详细说明
- 用C#实现C/S模式下软件自动在线升级
- 126邮箱OUTLOOKS设置
- asp.net ajaxkit 控件列表
- 失败者的必备素质