示例#1
0
        public Task <TResult> PublishEvent(IEventTranslator <TEvent> translator)
        {
            var taskCompletionSource = new TaskCompletionSource <TResult>();

            Events.Add(translator.Translate(Activator.CreateInstance <TEvent>(), 0));
            taskCompletionSource.SetResult(default(TResult));

            if (_publishAction != null)
            {
                _publishAction();
                _publishAction = null;
            }

            return(taskCompletionSource.Task);
        }