public async Task InMemoryEventBus_Configuration_ParallelDispatch() { var cfgBuilder = new InMemoryEventBusConfigurationBuilder() .AllowParallelDispatchFor <ParallelEvent>(); var b = new InMemoryEventBus(cfgBuilder.Build()); var evt = new ParallelEvent(); (await b.PublishEventAsync(evt).ConfigureAwait(false)).IsSuccess.Should().BeTrue(); evt.ThreadsInfos.Should().HaveCount(2); }
public async Task InMemoryEventBus_Configuration_RetryStrategy_WhenDispatchParallel() { bool callbackCalled = false; var cfgBuilder = new InMemoryEventBusConfigurationBuilder() .SetRetryStrategy(100, 3) .DefineErrorCallback((e, ctx) => callbackCalled = true) .AllowParallelDispatchFor <ParallelEvent>(); var b = new InMemoryEventBus(cfgBuilder.Build()); var evt = new ParallelEvent() { RetryMode = true }; (await b.PublishEventAsync(evt).ConfigureAwait(false)).IsSuccess.Should().BeTrue(); callbackCalled.Should().BeFalse(); evt.ThreadsInfos.Should().HaveCount(2); }
public override void OnMsg(int msgID, object args) { if (msgID == (int)Const_Util.UNIT_MSG.START_JUMP) { if (jumpOprEvent != null && !jumpOprEvent.IsFinish()) { return; } jumpOprEvent = new SeqEvent(); Vector3 originScale = cobj.GetRenderObjTr().localScale; Vector3 destScale = originScale * 1.34f; ParallelEvent jumpUpPara = new ParallelEvent(); ScaleEvent scaleTo = new ScaleEvent(cobj.GetRenderObjTr(), originScale, destScale, 0.4f); jumpUpPara.AddEvent(scaleTo); SeqEvent upEvent = new SeqEvent(); TimerEvent upTimeDelay = new TimerEvent(0.1f); upEvent.AddEvent(upTimeDelay); OneTimerEvent scaletoFunc = new OneTimerEvent(JumpEnough); upEvent.AddEvent(scaletoFunc); jumpUpPara.AddEvent(upEvent); TimerEvent timeDelay = new TimerEvent(0.8f); SeqEvent downEvent = new SeqEvent(); TimerEvent downTimeDelay = new TimerEvent(0.1f); downEvent.AddEvent(downTimeDelay); OneTimerEvent scalebackReset = new OneTimerEvent(JumpReset); downEvent.AddEvent(scalebackReset); ParallelEvent jumpDownPara = new ParallelEvent(); jumpDownPara.AddEvent(downEvent); ScaleEvent scaleBack = new ScaleEvent(cobj.GetRenderObjTr(), destScale, originScale, 0.4f); jumpDownPara.AddEvent(scaleBack); jumpOprEvent.AddEvent(jumpUpPara); jumpOprEvent.AddEvent(timeDelay); jumpOprEvent.AddEvent(jumpDownPara); jumpOprEvent.Begin(); } }