/// <summary> /// 全Loggerの次のイベントの処理が完了するまで同期的に待機する. /// </summary> public void WaitEvents() { var outputTask = _taskFactory.StartNew(() => { OutputLogger.WaitEvent(); }); var inputTask = _taskFactory.StartNew(() => { InputLogger.WaitEvent(); }); var errorOutputTask = _taskFactory.StartNew(() => { ErrorOutputLogger.WaitEvent(); }); outputTask.Wait(); inputTask.Wait(); errorOutputTask.Wait(); }
static void Main() { InputLogger k = new InputLogger(); ThreadPool.QueueUserWorkItem((s) => { while (true) { Console.WriteLine("Cursor Pos {0}\nKeypress since last: {1}", k.GetCursorPosition(), k.GetKeypressNumber()); Thread.Sleep(5 * Duration.Minute); } }); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); k.UnHook(); }
public void Dispose() { OutputLogger.Dispose(); InputLogger.Dispose(); ErrorOutputLogger.Dispose(); }