相关疑难解决方法(0)

跨线程操作无效

可能重复:
跨线程操作无效:从创建它的线程以外的线程访问控件

好的,我知道为什么这会给我这个错误:

跨线程操作无效:控制从其创建的线程以外的线程访问的"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();
Run Code Online (Sandbox Code Playgroud)

我不关心Thread何时或如何完成,所以我并不关心任何花哨或过于复杂的atm,除非在新的Thread中使用UI时会更容易.

.net c# user-interface multithreading winforms

30
推荐指数
2
解决办法
4万
查看次数

使跨线程操作无效

可能重复:
跨线程操作无效:从创建它的线程以外的线程访问控件

public void CheckUnusedTabs(string strTabToRemove)
{ 
    TabPage tp = TaskBarRef.tabControl1.TabPages[strTabToRemove];
    tp.Controls.Remove(this);
    TaskBarRef.tabControl1.TabPages.Remove(tp);
} 
Run Code Online (Sandbox Code Playgroud)

我试图使用上面的代码关闭Windows应用程序的tabcontrol中的选项卡,我遇到了错误:

跨线程操作无效.

怎么解决这个?

c# multithreading exception-handling winforms

13
推荐指数
3
解决办法
3万
查看次数

从..函数填充列表框?

首先,我是C#的新手

我想在C#winforms应用程序中做这样的事情

当我的应用程序启动时,表单在系统托盘中最小化.当我双击它时,它会打开并向qpid代理发送一些请求以获取一些信息.然后发回一条消息,并在我的应用程序中的监听器中收到(我不确定代码是否相关,但无论如何我都会发布)

namespace MyApp
{
    public class MyListener : IMessageListener
    {
        public void MessageTransfer(IMessage m)
        {
            //do stuff with m
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试做的是使用该函数中收到的消息填充该表单中的列表框,但我不知道如何从MessageTransfer函数与该特定表单进行通信

.net c#

3
推荐指数
1
解决办法
330
查看次数