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

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

Tim_LoGG Профи (542), на голосовании 5 месяцев назад
Мне нужно чтоб мой код работал на основе данных который я записал раньше, я всегда мог ввести новое значение чтоб изменить логику действий, каким образом можно реализовать постоянную возможность ввода данных.
Голосование за лучший ответ
Sergio 2.1 Оракул (67406) 6 месяцев назад
Вы можете использовать многопоточность. Один поток будет выполнять основную логику программы, а другой ожидать ввод данных от пользователя. Используйте потокобезопасные методы или объекты для синхронизации доступа к общим переменным между потоками.

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