public ManualResetEventSlim WatchForOutput(Regex regex) { var wait = new OutputWait(regex); AddNewWait(wait); return wait.Signal; }
protected void AddNewWait(OutputWait wait) { lock (Waits) Waits.Add(wait); lock (FilteredOutput) { for (int i = 0; i < FilteredOutput.Count; i++) { var ol = FilteredOutput[i]; if (wait.IsMatch(ol.Item2)) { FilteredOutput.RemoveAt(i); lock (Waits) Waits.Remove(wait); wait.Signal.Set(); return; } } } }
public ManualResetEventSlim WatchForOutput(string text) { var wait = new OutputWait(text); AddNewWait(wait); return wait.Signal; }