C#在其它类的线程工更新winForm中的textbox内容?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#在其它类的线程工更新winForm中的textbox内容?相关的知识,希望对你有一定的参考价值。
代码是这样子,应该怎么做?
public partial class MainForm : Form
public MainForm ()
InitializeComponent();
TCPServer.Instance.Start();
class TCPServer
public bool Running = false;
static TCPServer _instance = null;
public static TCPServer Instance
get
if (null == _instance)
_instance = new TCPServer();
return _instance;
public void Start()
try
Thread th = new Thread(listenerProc);
th.IsBackground = true;
th.Start();
catch (Exception ex)
void listenerProc()
while (true)
//在这里更新TextBox的内容,比如TextBox.text="refresh";
void listenerProc()
while (true)
textBox1.Invoke( new EventHandler( delegate textBox1.Text = "xxxxx"; ) );
追问
把Mainform里的TextBox对象(假设叫做textBox1),这个怎么保存?
追答加一个public字段就行了:
class TCPServer
public bool Running = false;
static TCPServer _instance = null;
public TextBox m_Textbox;
调用的地方:
public MainForm ()
InitializeComponent();
TCPServer.Instance.m_Textbox = this.textbox1;
TCPServer.Instance.Start();
我的是 textBox1没有Invoke?
参考技术A 可以用BeginInvoke方法。追问具体该怎么用啊?
参考技术B 委托,最先想到的。。。以上是关于C#在其它类的线程工更新winForm中的textbox内容?的主要内容,如果未能解决你的问题,请参考以下文章