多线程
public partial class ThreadForm : Form
{
public ThreadForm()
{
InitializeComponent();
}
private void ThreadForm_Load(object sender, EventArgs e)
{
//实例化委托
updateTxt = new UpdateTxt(UpdateTxtMethod);
}
//创建一个委托,是为访问TextBox控件服务的。
public delegate void UpdateTxt(string msg);
//定义一个委托变量
public UpdateTxt updateTxt;
//修改TextBox值的方法。
public void UpdateTxtMethod(string msg)
{
txtContent.AppendText(msg + "\r\n");
txtContent.ScrollToCaret();
}
//此为在非创建线程中的调用方法,其实是使用TextBox的Invoke方法。
public void ThreadMethodTxt(int n)
{
this.BeginInvoke(updateTxt, "线程开始执行,执行" + n + "次,每一秒执行一次");
for (int i = 0; i < n; i++)
{
this.BeginInvoke(updateTxt, i.ToString());
//一秒 执行一次
Thread.Sleep(1000);
}
//this.BeginInvoke(updateTxt, "线程结束");
updateTxt("线程结束");
}
private void btnStart_Click(object sender, EventArgs e)
{
Thread objThread = new Thread(new ThreadStart(delegate
{
ThreadMethodTxt(Convert.ToInt32(txtRunCount.Text.Trim()));
}));
objThread.Start();
//StartThread();
}
/*
private Thread ThreadTxt;
private void StartThread()
{
ThreadTxt = new Thread(new ParameterizedThreadStart(WriteText));
ThreadTxt.Start(txtRunCount.Text);
if (!ThreadTxt.IsAlive)
{
ThreadTxt.Abort();
}
}
private void WriteText(object count)
{
for (int i = 0; i <Convert.ToInt32(count); i++)
{
txtContent.Text = txtContent.Text + i.ToString()+"\r";
Thread.Sleep(1000);
}
}
*/
}
浙公网安备 33010602011771号