Вы можете использовать многопоточность. Один поток будет выполнять основную логику программы, а другой ожидать ввод данных от пользователя. Используйте потокобезопасные методы или объекты для синхронизации доступа к общим переменным между потоками.
Пример кода:
using System;
using System.Threading;
class Program
{
static volatile int sharedVariable = 0;
static void Main(string[] args)
{
Thread inputThread = new Thread(InputMethod);
inputThread.Start();
while (true)
{
Console.WriteLine($"Current Value: {sharedVariable}");
Thread.Sleep(1000); // Просто для удобства просмотра, можно убрать
}
}
static void InputMethod()
{
while (true)
{
Console.WriteLine("Enter new value:");
sharedVariable = Convert.ToInt32(Console.ReadLine());
}
}
}