private void ExecuteAsyncOnThreadPool() { ThreadPool.QueueUserWorkItem(state => { m_currentExecutionMode = AsynchronousExecutionMode.Short; if (ExecuteAction()) { ExecuteActionAsync(); } }); }
private void ExecuteAsyncOnDedicatedThread() { Thread t = new Thread(() => { m_currentExecutionMode = AsynchronousExecutionMode.Long; while (ExecuteAction()) { if (AsynchronousExecutionMode != AsynchronousExecutionMode.Long) { ExecuteActionAsync(); break; } } }); t.IsBackground = true; t.Start(); }