一个多线程的问题
我定义了一个类Messager,在该类中定义有一个事件,当收到新消息时触发. public delegate void NewMessageEventHandler(object sender, NewMessageEventArgs fe);
public event NewMessageEventHandler NewMessageEvent;
public void PopNewMessage(int i)
{
if(NewMessageEvent!=null)
{
NewMessageEventArgs fe=new NewMessageEventArgs(i);
NewMessageEvent(this, fe);
}
}
同时,在Messager类中定义有一个线程,由该线程循环检索新消息,如果有新消息收到时,则调用PopNewMessage进行处理,也就是触发新消息这个事件.
另外,在窗体中创建了Messager的实例,并且定义了事件处理程序
ms = new Messager();
ms.NewMessageEvent += new Messagr.NewMessageEventHandler(OnNewMessage);
private void OnNewMessage(object sender, NewMessageEventArgs fe)
{
ListBox1.Items.Add(fe.Value);
}
此时,当ms对象收到新消息时,程序提示ListBox1是另一个线程创建的,不能访问
不知道是何原因,如何解决,望各位大侠告知?
先谢过!