从另一个线程中的类更新文本框

时间:2010-12-09 00:58:11

标签: c# multithreading

我一直在阅读相关主题,但似乎无法让它们发挥作用。

我试图为我的应用程序制作一个事件日志。它首先打开“Form1”,我有一个打开“Form2”的函数。 “Form2”启动一个多线程TcpListener。如何在运行TcpListener的线程“Form2”中编辑“Form1”中的文本框。您如何从另一个表单/类中更改它,或者它是以相同的方式完成的。

示例将是受欢迎的,所以我可以分解并理解。

非常感谢

1 个答案:

答案 0 :(得分:1)

从后台线程更新控件是一个常见问题,通常最简单的方法是使用BackgroundWorker。查看一些使用BackgroundWorker的MSDN教程。

当您执行某些后台任务并希望在任务期间或任务结束时进行更新时,这很有效。但是,由于您正在等待来自套接字的输入,因此看起来您可能会做一些不同的事情。在这种情况下,有时候后台线程只是将它接收到的任何事件添加到队列中然后使用计时器事件来处理队列并更新需要更新的任何控件。请务必使用Windows窗体计时器,而不是线程计时器。

相关问题