public IWork Load() { if (status == Status.UNINIT) { loader = DoLoad(); status = loader != null ? Status.LOADING : Status.RUNNING; if (loader != null) { loader.AddOnFinish(OnLoadFinished); } else { OnLoadFinished(); } } return(loader); }