public Form1()
{
InitializeComponent();
}
public delegate void CrossDelegate();
private void button1_Click(object sender, EventArgs e)
{
Thread newThread = new Thread(new ThreadStart(SetLabel));
newThread.IsBackground = true;
newThread.Start();
}
private void SetLabel()
{ CrossDelegate dl = new CrossDelegate(Done);
this.Invoke(dl); }
private void Done()
{ for (int j = 0; j < 100; j++)
{
this.label1.Text=j.ToString();
Thread.Sleep(1000);
}
}为什么执行就卡界面?
{
InitializeComponent();
}
public delegate void CrossDelegate();
private void button1_Click(object sender, EventArgs e)
{
Thread newThread = new Thread(new ThreadStart(SetLabel));
newThread.IsBackground = true;
newThread.Start();
}
private void SetLabel()
{ CrossDelegate dl = new CrossDelegate(Done);
this.Invoke(dl); }
private void Done()
{ for (int j = 0; j < 100; j++)
{
this.label1.Text=j.ToString();
Thread.Sleep(1000);
}
}为什么执行就卡界面?
解决方案 »
- 需要把程序复制到别的地方,但是数据库的本地的,同学说只要把数据库的mdb同时复制过去就可以。真的吗?
- C# winform程序多个版本安装在同一目录下,尽快帮我哦
- C#导出EXCEL问题---导出EXCEL工作表间的关联问题.(在线等,高手请进)
- C#,循环的问题 第三贴,有更详细的说明
- 为什么命令行下能编译成功,IDE里就不行了?
- 求读数据库中的2进制流(文件).并把文件保存到本地的代码
- 如何判断所获得的是目录还是文件
- Socket问题
- C# 导入oracle数据库。dmp文件
- 用了一天的时间写了个仿winxp的notepad的程序,现有以下问题求解?
- DataGridView中部分行排序的问题
- 正则问题.谢谢
this.Invoke只在需要访问UI时才调用为佳。
比如 this.Invoke(()=>{ this.label1.Text=j.ToString(); });
public delegate void CrossDelegate(string s);
private void SetLabel(string s)
{
if (this.textBox1.InvokeRequired)
{
this.textBox1.Invoke(new CrossDelegate(SetLabel), s);
return;
}
this.textBox1.Text = s;
}
private void Done()
{
for (int j = 0; j < 100; j++)
{ SetLabel(j.ToString());
Thread.Sleep(1000);
}
}
private void button1_Click(object sender, EventArgs e)
{
Thread newThread = new Thread(new ThreadStart(Done));
newThread.IsBackground = true;
newThread.Start();
}