Ghanshyam Nimbalkar Ответов: 2

Остановка выполнения процесса в приложении C# windows


Моя форма Windows имеет две кнопки: "Пуск" и "стоп". Как я могу остановить форму от выполнения того, что она делает, не закрывая все приложение? Кнопка "стоп" должна была бы остановить процесс, который выполняется в другом классе.

Что я уже пробовал:

в моем приложении я выполняю операцию с использованием таймера и потока

Richard MacCutchan

Это зависит от того, что делает процесс и что вы хотите сделать, когда пользователь нажимает кнопку стоп. Вы можете установить глобальный флаг, который может проверить процесс, или использовать обработчик событий.

2 Ответов

Рейтинг:
2

F-ES Sitecore

Это зависит от реализации процесса, который вы хотите остановить, но обычно вы отмечаете что-то на нем, что говорит ему, что вы хотите, чтобы он остановился.

class Program
{
    static void Main(string[] args)
    {
        Worker w = new Worker();

        Thread t = new Thread(new ThreadStart(w.DoWork));
        t.Start();

        Console.WriteLine("Press any key to stop");
        Console.ReadKey();
            
        Console.WriteLine("Stopping worker...");
        w.Stopping = true;
        t.Join();

        Console.WriteLine("Worker stopped");
    }
}

class Worker
{
    public bool Stopping { get; set; }

    public void DoWork()
    {
        while (!Stopping)
        {
            System.Diagnostics.Debug.WriteLine (DateTime.Now);
            System.Threading.Thread.Sleep(1000);
        }
    }
}


Рейтинг:
0

koolprasadd

Либо вы можете использовать нить.Stop() на кнопке stop или вы можете напрямую позвонить

Environment.Exit(1)

немедленно прекратить.