Вы не сможете сделать так, чтобы ваша программа делала это легко, то есть фактически выполняет 2 действия одновременно: 1) ожидание ввода (что делает readline / readkey) и 2) продолжение работы одновременно.
Вы могли бы сделать это с многопоточностью, запустив выполнение вашей логики для одной угрозы и ожидание пользовательского ввода в другом потоке, а затем обмен данными между потоками, когда пользовательский ввод происходит, но, исходя из вашего вопроса, это, вероятно, слишком сложный ответ,Я с удовольствием напишу образец, но думаю, что это скорее сбивает с толку, чем помогает.