// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; using System.Collections.Generic; namespace ICSharpCode.AvalonEdit.Utils { /// <summary> /// Maintains a list of delayed events to raise. /// </summary> sealed class DelayedEvents { struct EventCall { EventHandler handler; object sender; EventArgs e; public EventCall(EventHandler handler, object sender, EventArgs e) { this.handler = handler; this.sender = sender; this.e = e; } public void Call() { handler(sender, e); } } Queue<EventCall> eventCalls = new Queue<EventCall>(); public void DelayedRaise(EventHandler handler, object sender, EventArgs e) { if (handler != null) { eventCalls.Enqueue(new EventCall(handler, sender, e)); } } public void RaiseEvents() { while (eventCalls.Count > 0) eventCalls.Dequeue().Call(); } } }
By viewing downloads associated with this article you agree to the Terms of use and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.
This article, along with any associated source code and files, is licensed under The GNU Lesser General Public License (LGPLv3)
Math Primers for Programmers