If I understand you correctly, you'll need to add a method for the .Start() method to call, like this:
priviate IEnumerable<INotifyCompleted> DoStuff()
{
yield return DoThis(int x) { ... }
yield return DoThat() {...}
}
Now call that from somewhere:
public void DoAsyncStuffForMe()
{
Coroutine.Start(GetStatusData);
}
You can also set up the caller to notify when it's done:
public INotifiyCompleted DoAsyncStuffForMe(Action onSuccess)
{
var op = Coroutine.Start(GetStatusData);
op.Completed += (s, a) =>
{
if(a.CompletedSuccessfully && onSuccess != null)
{
onSuccess();
}
return op();
}