在 Invoke 中使用 Foreach 循环

Using Foreach Loop inside of Invoke

不要介意像GameObject这样的变量。这些是我的自定义变量。

我有一个线程,我需要访问 UI 线程中的一个列表变量。

public void MainLoop(){
        while (true)
        {
            this.Invoke(new MethodInvoker(() =>


            foreach(GameObject ob in mygame.scenes[CurrentScene].objects){

              //run code here

            }


            ));
        }

    }

这会引发错误,"} 预期。我似乎无法弄清楚如何解决这个问题。有谁知道如何 运行 控制调用中的 foreach 循环?

您只需要一组额外的 {}。此处您的代码经过格式化,因此在添加大括号后可读。

public void MainLoop()
{
  while (true)
  {
    this.Invoke(new MethodInvoker(() =>
                {
                  foreach(GameObject ob in mygame.scenes[CurrentScene].objects)
                  {
                    //run code here
                  }
                }
                ));
  }
}