/// <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();
        }
示例#2
0
        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();
 }