Запуск метода в другом потоке при прослушивании ввода пользователя - PullRequest
0 голосов
/ 05 марта 2019

Как лучше всего отправить метод в другой поток при прослушивании ввода от пользователя.Как лучше всего приостановить / возобновить тот же многопоточный метод?

Очень урезанный пример того, чего я пытаюсь достичь:

    static int fuel = 100;
    static bool tankEmpty = false;

    static void Main(string[] args)
    {

        Debug.WriteLine("test");

        ThreadStart fuelThreadStart = ProcessFuel;
        var fuelThread = new Thread(fuelThreadStart);
        fuelThread.Start();

        Console.WriteLine("Press x to add fuel");
        string input = Console.ReadLine(); // < where should this go?
        if (input == "x")
        {
            AddFuel();
        }
    }

    static void ProcessFuel()
    {
        while (!tankEmpty)
        {
            Console.Clear();
            Console.WriteLine("Current fuel level: " + fuel);
            Thread.Sleep(2000);
            fuel -= 10;
            if (fuel < 20)
            {
                Console.WriteLine("Fuel level is low.");
            }
        }
        if (tankEmpty)
        {
            Console.WriteLine("You have run out of fuel")
        )
    }

    static void AddFuel()
    {
        if (fuel > 80)
        {
            fuel = 100;
        }
        else { }

        fuel += 20;
    }
...