public void WaitForOutput() { m_affinity.Check(); do { lock (m_lock) { if (m_queue.Count > 0) { return; } } m_event.WaitOne(); } while (true); }
public static Func <TSource, TResult> Memoize <TSource, TResult>(this Func <TSource, TResult> func) { var affinity = new ThreadAffinity(); var map = new Dictionary <TSource, TResult>(); return(x => { affinity.Check(); TResult result; if (!map.TryGetValue(x, out result)) { result = func(x); map[x] = result; } return result; }); }