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; }