private List <string> RecursiveSearch(string rootDirectory) { var directoriesToScan = new Stack <string>(); directoriesToScan.Push(rootDirectory); var files = new List <string>(); Trampoline.Start(Iteration, files, directoriesToScan); return(files); }
public void TestTrampolineRecursion() { var factorial = Trampoline.Start(Iteration, 1, 2); Assert.AreEqual(2, factorial); factorial = Trampoline.Start(Iteration, 1, 3); Assert.AreEqual(6, factorial); factorial = Trampoline.Start(Iteration, 1, 4); Assert.AreNotEqual(23, factorial); }
// ----------------------------------------------------------------------------------- static void Send(GameEvent e, DelegateSet delegateSet) // ----------------------------------------------------------------------------------- { if (delegateSet == null) { return; // no one listening for this event, so ignore it } delegateSet.Queue.Enqueue(e); if (delegateSet.Queue.Count == 1) { Trampoline.Start(ProcessQueue, delegateSet); } }