public void Get <TService>(System.Action <TaskEnding, TService> handler) where TService : IService { IService service = FetchService(typeof(TService)); if (service != null) { handler(TaskEnding.Done, (TService)service); return; } //no active provider - see if we can activate a dormant provider CoreLogger.LogDebug(_loggerModule, string.Format("adding service {0}, now looking for provider...", typeof(TService).Name)); _taskFactory.FromEnumerableAction(() => ActivateServiceProvider(typeof(TService), s => { if (s == null) { handler(TaskEnding.Cancelled, default(TService)); } else { handler(TaskEnding.Done, (TService)s); } })).Start(-1); }
override public ITask Start(float timeout = -1f) { _timeout = timeout; _startTime = Time.realtimeSinceStartup; InvokeStarting(); _taskFactory.FromEnumerableAction(Controller).Start(result => InvokeDone(result), timeout); return(this); }
public ITask GetInitializer(IServiceResolver resolver) { _taskFactory = resolver.TaskFactory; return(_taskFactory.FromEnumerableAction(Init)); }
public ITask GetInitializer(IServiceResolver serviceResolver) { _taskFactory = serviceResolver.TaskFactory; return(_taskFactory.FromEnumerableAction(() => InitService(serviceResolver))); }