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);
}
}
}
posted on 2010-08-04 09:23
Ying-er 阅读(310)
评论(0) 编辑 收藏 所属分类:
.Net