Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как дать возможность изменить значения переменной в любой момент выполнения кода C#

Tim_LoGG Знаток (484), открыт 1 неделю назад
Мне нужно чтоб мой код работал на основе данных который я записал раньше, я всегда мог ввести новое значение чтоб изменить логику действий, каким образом можно реализовать постоянную возможность ввода данных.
2 ответа
Сверхразум Просветленный (47317) 1 неделю назад
Вы можете использовать многопоточность. Один поток будет выполнять основную логику программы, а другой ожидать ввод данных от пользователя. Используйте потокобезопасные методы или объекты для синхронизации доступа к общим переменным между потоками.

Пример кода:
 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());
}
}
}
Jurijus Zaksas Искусственный Интеллект (427491) 1 неделю назад
Очевидно, твоя программа должна постоянно опрашивать устройство ввода твоих данных, чем бы оно ни было, на предмет наличия новых данных. Можно это делать в основном потоке, можно запустить логику в отдельном - как тебе больше нравится.
Похожие вопросы