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);
}
}
}