You really can't do it without manually waiting for it.
What you can do is:
object obj = new object ();
BeginInvokeOnMainThread (delegate {
//Do something
lock (obj) { Monitor.Notify (obj); }
});
Thread.Sleep (2000);
lock (obk) { Monitor.Wait (obj); }
Ideally we would provide wrappers for common idioms of the .NET plataform
like making the
function return an IAsyncResult or Task object.
On Thu, Apr 5, 2012 at 6:13 PM, MojoDK <[email protected]> wrote:
> Hi,
>
> In this code...
>
> ThreadPool.QueueUserWorkItem (delegate {
> BeginInvokeOnMainThread (delegate {
> // Do something
> });
> Thread.Sleep(2000);
> // Check something
> });
>
> ... how can I make sure the "// Do something" is completely done before
> "//Check something"?
>
> In other words, how can I check when BeginInvokeOnMainThread is done and
> then do some stuff still in the ThreadPool.QueueUserWorkItem?
>
> Thanks!
> Mojo
>
> --
> View this message in context:
> http://monotouch.2284126.n4.nabble.com/When-is-BeginInvokeOnMainThread-done-tp4536089p4536089.html
> Sent from the MonoTouch mailing list archive at Nabble.com.
> _______________________________________________
> MonoTouch mailing list
> [email protected]
> http://lists.ximian.com/mailman/listinfo/monotouch
>
_______________________________________________
MonoTouch mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/monotouch