None except that code snippet but it's trivial. For x-platform you can use System.SyncObjs.TEvent.WaitFor. I couldn't find x-platform method to wait for multiple objects so to cancel the wait you'll have to reset each waitable object (so you'll have to keep a list of them... code becomes less and less short & trivial 🙂 )