public int GetInteger(int millisecondTimeout)
 {
     using (var consoleListener = new ConsoleListener())
     {
         _interaction = new Interaction();
         consoleListener.InteractionHandled += consoleListener_InteractionHandled;
         consoleListener.Start();
         getInput.WaitOne(millisecondTimeout);
         return _interaction.resultValue;
     }
 }
 public bool TryGetInteger(out int value, int millisecondTimeout)
 {
     using (var consoleListener = new ConsoleListener())
     {
         _interactionHappened = false;
         _interaction = new Interaction();
         consoleListener.InteractionHandled += consoleListener_InteractionHandled;
         consoleListener.Start();
         getInput.WaitOne(millisecondTimeout);
         value = _interaction.resultValue;
         return _interactionHappened;
     }
 }
 public MenuItem ChooseFromMenu(Menu menu, int millisecondTimeout)
 {
     using (var consoleListener = new ConsoleListener())
     {
         _interactionHappened = false;
         _interaction = new Interaction();
         consoleListener.InteractionHandled += consoleListener_InteractionHandled;
         consoleListener.Start();
         Console.Write("Enter choice: ");
         getInput.WaitOne(millisecondTimeout);
         if (menu.ValidChoice(_interaction.resultValue))
             return menu.GetMenuItem(_interaction.resultValue);
         else
             return null;
     }
 }