void Foo(Action<object> Callback)

{

  thread th = new Thread(delegate()

  {

    //...

    Callback(result);

  }

  th.Start();

}


이런 식으로 하면 할 수는 있는데 스레드 안에서 콜백이 호출된단 말임.

나는 메인 스레드에서 콜백 호출하고 싶은데


그렇다고 콜백을 delegate 바깥으로 빼면 실행이 안되고

내가 할라는 작업은 시간이 많이 들어서 join이나 async도 못쓰고


그러니까 이걸 어떻게 해야 메인스레드에서 콜백 호출이 됨?