我正在写一个小聊天应用程序,我有这个事件处理程序:
void o_Typing(object sender, EventArgs e)
{
MessageBox.Show("Fired!");
this.Text = "Fired!";
}
o_Typing
是派生自 的类中的方法TabPage
。基本上,我希望每个对话都有自己的标签。
事件处理程序由我的 Chat 对象触发,该对象在另一个线程中运行。我有 1 个用于 UI 的线程,以及用于每个聊天对话的另一个线程(以不断轮询服务器以获取新数据)
触发事件时,会MessageBox
弹出,但选项卡标题不会更改。事件触发一次后,它就再也不会触发了,这让我相信该事件是在工作线程中调用的,尽管它是在 UI 线程中定义的。
如何让我的事件从工作线程中调用,并用于Invoke()
让它们在 UI 线程上执行?