首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从另一个线程更新标签?

如何从另一个线程更新标签?

提问于 2018-03-14 00:43:54
回答 2关注 0查看 241

我使用另一个课程中的线程来更新标签,该标签是Winform Main类中的内容:

代码语言:javascript
复制
 Scanner scanner = new Scanner(ref lblCont);
 scanner.ListaFile = this.listFiles;
 Thread trd = new Thread(new ThreadStart(scanner.automaticScanner));
 trd.IsBackground = true;
 trd.Start();
 while (!trd.IsAlive) ;
 trd.Join();

在第二类(扫描仪)中,我有一个名为“automaticScanner”的方法,它应该用下面的代码更新标签:

代码语言:javascript
复制
public Scanner(ref ToolStripStatusLabel _lblContatore)
{
        lblCounter= _lblContatore;
}
Thread threadUpdateCounter = new Thread(new ThreadStart(this.UpdateCounter));
threadUpdateCounter.IsBackground = true;
threadUpdateCounter.Start();
while (!threadUpdateCounter .IsAlive) ;
threadUpdateCounter.Join();

private void AggiornaContatore()
{
  this.lblCounter.Text = this.index.ToString();        
}

我在更新标签时收到此错误:

跨线程操作无效:从其创建线程以外的线程访问控制'Main'

新闻:问题是这条线:

代码语言:javascript
复制
trd.Join();

这行禁止我的GUI和标签不更新。有方法来控制线程的完成并更新标签直到结束吗?

相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档