private void btnfirst_Click(object sender, RoutedEventArgs e) { if (FirstEvent != null) { FirstEvent.Invoke(); } }
/// <summary> /// generate events asyncronously with random delay /// </summary> public void Working() { int n = rnd.Next(5, 10); //adding more randomness StartWork?.Invoke(textBox); Thread.Sleep(rnd.Next(30 - n, 40 + n) * 100); int m = rnd.Next(20, 50); while (!IsClicked) { switch (rnd.Next(1, 5)) { case 1: { FirstEvent?.Invoke(textBox); break; } case 2: { SecondEvent?.Invoke(textBox); break; } case 3: { ThirdEvent?.Invoke(textBox); break; } case 4: { FourthEvent?.Invoke(textBox); break; } default: break; } Thread.Sleep(rnd.Next(100 - n, 100 + m) * 100); } //StopWork?.Invoke(textBox); StopCalled = true; }
public IEnumerable <FirstEvent> Extend(RunImport run) { if (run.Logs == null) { return(Enumerable.Empty <FirstEvent>()); } var firstEverything = new List <FirstEvent>(); var advancements = run.Events.Where(x => x.Type == EventTypes.Advancement).Select(x => x.Value).Distinct(); foreach (var advancement in advancements) { var fastest = run.Events .Where(x => (x.Type == EventTypes.Advancement) && x.Value == advancement) .OrderBy(x => x.Timestamp) .First(); var first = new FirstEvent { Name = advancement, PlayerId = fastest.PlayerId, Time = fastest.Timestamp }; firstEverything.Add(first); } return(firstEverything); }
public void OnGet() { var event1 = new FirstEvent { MyID = Guid.NewGuid(), Timestamp = DateTime.Now }; _eventPublisherService.Emit(event1); var event2 = new SecondEvent(new MyObject { ID = Guid.NewGuid(), Name = "Francesc" }) { Timestamp = DateTime.Now }; _eventPublisherService.Emit(event2); }
public void Handle(IViewContext context, FirstEvent domainEvent) { Thread.Sleep(FirstEventSleepMilliseconds); }
/// <summary> /// トラックにイベントを挿入(イベントはあらかじめ生成しておく) /// pEventをpTargetの直後に入れる。時刻が不正な場合、自動訂正する。 /// pTarget==NULLの場合、トラックの最初に入れる。 /// </summary> /// <param name="insertEvent">挿入するイベント</param> /// <param name="targetEvent">挿入ターゲット</param> internal void InsertSingleEventAfter(Event insertEvent, Event targetEvent) { /* イベントが既に他のトラックに属している場合、却下する */ if (insertEvent.Parent != null || insertEvent.PrevEvent != null || insertEvent.NextEvent != null) { throw new MIDIDataLibException("イベントは既に他のトラックに属しています。"); } /* EOTを二重に入れるのを防止 */ if (LastEvent != null) { if (LastEvent.Kind == Kind.EndofTrack && insertEvent.Kind == Kind.EndofTrack) { return; } } /* SMFフォーマット1の場合 */ if (Parent != null) { if (Parent.Format == Format.Format1) { /* コンダクタートラックにMIDIEventを入れるのを防止 */ if (ReferenceEquals(Parent.FirstTrack, this)) { if (insertEvent.IsMIDIEvent) { throw new MIDIDataLibException("コンダクタートラックにMIDIEventを挿入することはできません。"); } } /* 非コンダクタートラックにテンポ・拍子などを入れるのを防止 */ else { if (insertEvent.Kind == Kind.Tempo || insertEvent.Kind == Kind.SMPTEOffset || insertEvent.Kind == Kind.TimeSignature || insertEvent.Kind == Kind.KeySignature) { throw new MIDIDataLibException("非コンダクタートラックにテンポ・拍子などを挿入することはできません。"); } } } } /* pTargetの直後に挿入する場合 */ if (targetEvent != null) { /* ターゲットが所属トラックが異なる場合却下 */ if (targetEvent.Parent != this) { throw new MIDIDataLibException("ターゲットの所属トラックが異なります。"); } /* EOTの直後に挿入しようとした場合、EOTを移動しEOTの直前に挿入 */ if (targetEvent.Kind == Kind.EndofTrack && targetEvent.NextEvent == null) { /* EOTを正しく移動するため、先に時刻の整合調整 */ if (targetEvent._time < insertEvent._time) { targetEvent._time = insertEvent._time; } targetEvent.SetPrevEvent(insertEvent); } /* EOT以外の直後に挿入しようとした場合、時刻の整合さえすれば可能(pTarget==NULL) */ else { if (LastEvent.Kind == Kind.EndofTrack) { if (LastEvent._time < insertEvent._time) { LastEvent._time = insertEvent._time; } } targetEvent.SetNextEvent(insertEvent); } } /* トラックの最初に挿入する場合(pTarget==NULL) */ else if (FirstEvent != null) { /* EOTの直前となる場合は、EOTの時刻を調整する */ if (FirstEvent.Kind == Kind.EndofTrack && FirstEvent.NextEvent == null) { if (FirstEvent._time < insertEvent._time) { FirstEvent._time = insertEvent._time; } } FirstEvent.SetPrevEvent(insertEvent); } /* 空トラックに挿入する場合 */ else { insertEvent.Parent = this; insertEvent.NextEvent = null; insertEvent.PrevEvent = null; insertEvent.NextSameKindEvent = null; insertEvent.PrevSameKindEvent = null; FirstEvent = insertEvent; LastEvent = insertEvent; NumEvent++; } }
private void OnFirst(FirstEvent obj) { CurrentState = 1; }