方法回调与委托、线程综合应用的例子:
using System;
using System.Windows.Forms;
using System.Threading;
namespace 方法回调与委托_线程的综合应用
{
public partial class Form1 : Form
{
private delegate void WriTextBox1CallBack(char ch);
WriTextBox1CallBack wriTextBox1CallBack;
private delegate void WriTextBox2CallBack(char ch);
WriTextBox2CallBack wriTextBox2CallBack;
public Form1()
{
InitializeComponent();
wriTextBox1CallBack = new WriTextBox1CallBack(WriText1);
wriTextBox2CallBack = new WriTextBox2CallBack(WriText2);
}
private void button1_Click(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
{
textBox1.Clear();
textBox1.Refresh();
Thread thread = new Thread(WriTextBox1);
thread.Start();
}
if (checkBox2.Checked == true)
{
textBox2.Clear();
textBox2.Refresh();
Thread thread = new Thread(WriTextBox2);
thread.Start();
}
}
private void WriText1(char ch)
{
textBox1.AppendText(ch + "\r");
}
private void WriText2(char ch)
{
textBox2.AppendText(ch + "\r");
}
private void WriTextBox1()
{
string strdata = textBox3.Text;
for (int i = 0; i < strdata.Length; i++)
{
textBox1.Invoke(wriTextBox1CallBack,strdata[i]);
jianxieyanshi(0.02);
}
}
private void WriTextBox2()
{
string strdata = textBox3.Text;
for (int i = 0; i < strdata.Length; i++)
{
textBox2.Invoke(wriTextBox2CallBack, strdata[i]);
jianxieyanshi(0.02);
}
}
private static void jianxieyanshi(double i)
{
//延时
DateTime dt = DateTime.Now;
while (dt.AddSeconds(i) > DateTime.Now) { }
}
}
}
希望能有初学C#网络编程的同学一起探讨哈哈~~~
20150317