C# Windows窗体线程

C# Windows窗体线程,c#,winforms,multithreading,C#,Winforms,Multithreading,我用C#编写了一个Windows窗体应用程序。当我运行一个单独的线程,其中包含一个切换窗体上面板不可见性的方法时,它第一次工作,但第二次不工作。为什么以及如何修复它?我猜从后台线程调用的UI代码是 您的问题有点模糊,但听起来好像您想从不同的线程控制UI,在这种情况下,您需要同步请求。在不知道您使用的编程语言的情况下,很难告诉您如何执行此操作。谢谢,通过以下代码解决了我的问题: Panel tmp = null; switch (d.Person) { case 1: tmp = back

我用C#编写了一个Windows窗体应用程序。当我运行一个单独的线程,其中包含一个切换窗体上面板不可见性的方法时,它第一次工作,但第二次不工作。为什么以及如何修复它?

我猜从后台线程调用的UI代码是

您的问题有点模糊,但听起来好像您想从不同的线程控制UI,在这种情况下,您需要同步请求。在不知道您使用的编程语言的情况下,很难告诉您如何执行此操作。

谢谢,通过以下代码解决了我的问题:

Panel tmp = null;
switch (d.Person)
{
    case 1: tmp = backPic1;
        break;
    case 2: tmp = backPic2;
        break;
    case 3: tmp = backPic3;
        break;
}
if (InvokeRequired)
{
    tmp.Invoke(new MethodInvoker(delegate() { tmp.Visible = true; }));
}
else
{
    tmp.Visible = true;
}

你用什么语言编写应用程序?你有一些代码要发布吗?Babel Fish是一种很好的药物。@oxbow\u lakes:请不要发明新标签:翻译:你好,我已经编写了一个windows窗体应用程序。当我运行一个单独的线程,其中包含一个切换窗体上面板不可见性的方法时,它第一次工作,但第二次不工作。为什么以及如何修复它?(会改变问题本身,但不够代表)@Modir:请向我们展示用于切换面板可见性的代码,以及用于第一次和第二次分叉线程的代码。