您的位置:首页 > 其它

多线程传数据例子

2009-03-04 09:41 295 查看
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;

using System;

using System.Threading;

namespace DataImportFromAccess

{

//声明一个回调函数:注意传递的参数要与Example类中的函数参数类型一致

public delegate void ExampleCallback(int lineCount, Label lb);

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

public void CurrentNumber(int tempCurrent,Label lb)

{

lb.Text = tempCurrent.ToString();

}

private void button1_Click(object sender, EventArgs e)

{

ThreadWithData twd = new ThreadWithData(1, 100,this.label1,new ExampleCallback(CurrentNumber));

Thread td = new Thread(new ThreadStart(twd.RunMethod));

td.Start();

}

private void button2_Click(object sender, EventArgs e)

{

ThreadWithData twd = new ThreadWithData(2, 200,this.label2, new ExampleCallback(CurrentNumber));

Thread td = new Thread(new ThreadStart(twd.RunMethod));

td.Start();

}

}

public class ThreadWithData

{

private int start = 0;

private int end = 0;

private ExampleCallback callBack;

private Label lb;

public ThreadWithData(int start,int end,Label lb,ExampleCallback callBack)

{

this.start = start;

this.end = end;

this.callBack=callBack;

this.lb = lb;

}

public void RunMethod()

{

for(int i=start;i<end;i++)

{

Thread.Sleep(1000);

if (callBack != null)

callBack(i,lb);

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: