可能重复:
跨线程操作无效:从创建它的线程以外的线程访问控件
好的,我知道为什么这会给我这个错误:
跨线程操作无效:控制从其创建的线程以外的线程访问的"Form1".
但是......我怎样才能使这个可行?
System.Threading.Thread t = new System.Threading.Thread(()=>
{
   // do really hard work and then...
   listView1.Items.Add(lots of items);
   lots more UI work
});
t.Start();
我不关心Thread何时或如何完成,所以我并不关心任何花哨或过于复杂的atm,除非在新的Thread中使用UI时会更容易.
可能重复:
跨线程操作无效:从创建它的线程以外的线程访问控件
public void CheckUnusedTabs(string strTabToRemove)
{ 
    TabPage tp = TaskBarRef.tabControl1.TabPages[strTabToRemove];
    tp.Controls.Remove(this);
    TaskBarRef.tabControl1.TabPages.Remove(tp);
} 
我试图使用上面的代码关闭Windows应用程序的tabcontrol中的选项卡,我遇到了错误:
跨线程操作无效.
怎么解决这个?
首先,我是C#的新手
我想在C#winforms应用程序中做这样的事情
当我的应用程序启动时,表单在系统托盘中最小化.当我双击它时,它会打开并向qpid代理发送一些请求以获取一些信息.然后发回一条消息,并在我的应用程序中的监听器中收到(我不确定代码是否相关,但无论如何我都会发布)
namespace MyApp
{
    public class MyListener : IMessageListener
    {
        public void MessageTransfer(IMessage m)
        {
            //do stuff with m
        }
    }
}
我正在尝试做的是使用该函数中收到的消息填充该表单中的列表框,但我不知道如何从MessageTransfer函数与该特定表单进行通信