@kill94

Как реализовать пока не нажата клавиша выполнить функцию?

Как реализовать пока не нажата клавиша выполнить функцию. При нажатие закончить выполнение, и после обработки события нажатия на клавишу выполнять эту же функцию .
Вот типа этого.
do
            {
                do
                {
                    //функция 
                } while (!Console.KeyAvailable);
          
                //обработка события нажатия на клавишу
            } while (Console.ReadKey().Key != ConsoleKey.Escape);

Но это в консоле, а мне нужно реализовать все это на форме
  • Вопрос задан
  • 1419 просмотров
Решения вопроса 1
@pupunussi
Создаём CancellationTokenSource и берём его Token:

var source = new CancellationTokenSource();
var token = source.Token;

Создаём и запускаем задачу:

Task.Run(() =>
{
    do
    {

    }
    while (!token.IsCancellationRequested);
});

В кнопке говорим задаче, что надо закончить:

source.Cancel();
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@patch1
KeyPress - ссылка
Ответ написан
Комментировать
AxisPod
@AxisPod
На форме так просто не сделать. Читайте про потоки и события. Как минимум надо будет делать фоновой поток с возможностью прерывания, который и будет делать всё что надо, иначе UI зависнет и ни к чему хорошему это не приведет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы