委托多线程
public
partial
class
Form1 : Form
{
/*
* 界面上有一个button,和一个textbox,点击button1时,开始一个新线程,新线程中有一个方法,从0开始计数
* 并累加,且将每一个新的数字显示到textbox1中去
* */
public
Form1()
{
InitializeComponent();
}
public
delegate
void
SetTextDelegate(
int
text);
private
void
button1_Click(
object
sender, EventArgs e)
{
Thread th =
new
Thread(
new
ThreadStart(SetText));
th.Start();
}
private
void
SetText()
{
for
(
int
a=0;a<1000000;a++)
{
if
(textBox1.InvokeRequired)
{
textBox1.Invoke(
new
SetTextDelegate(SetTextDo), a);
}
}
}
public
void
SetTextDo(
int
i)
{
textBox1.Text = i.ToString();
}
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private
void
InitializeComponent()
{
this
.button1 =
new
System.Windows.Forms.Button();
this
.textBox1 =
new
System.Windows.Forms.TextBox();
this
.SuspendLayout();
//
// button1
//
this
.button1.Location =
new
System.Drawing.Point(13, 23);
this
.button1.Name =
"button1"
;
this
.button1.Size =
new
System.Drawing.Size(75, 23);
this
.button1.TabIndex = 0;
this
.button1.Text =
"button1"
;
this
.button1.UseVisualStyleBackColor =
true
;
this
.button1.Click +=
new
System.EventHandler(
this
.button1_Click);
//
// textBox1
//
this
.textBox1.Location =
new
System.Drawing.Point(145, 23);
this
.textBox1.Name =
"textBox1"
;
this
.textBox1.Size =
new
System.Drawing.Size(100, 21);
this
.textBox1.TabIndex = 1;
//
// Form1
//
this
.AutoScaleDimensions =
new
System.Drawing.SizeF(6F, 12F);
this
.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this
.ClientSize =
new
System.Drawing.Size(284, 262);
this
.Controls.Add(
this
.textBox1);
this
.Controls.Add(
this
.button1);
this
.Name =
"Form1"
;
this
.Text =
"Form1"
;
this
.ResumeLayout(
false
);
this
.PerformLayout();
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。