Приостановить инфу в консоли - C#

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Приостановить инфу в консоли»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Threading;
 
namespace BackgroundThreadTest
{
    class Program
    {
        private static int x;
        private static readonly Queue<int> Queue = new Queue<int>(); 
 
        private static event Action Changed;
        static bool print = true;
 
        static void Main()
        {
            var thread = new Thread(() =>
                {
                    while (++x < 100)
                    {
                        Queue.Enqueue(x);
                        Action handler = Changed;
                        if (handler != null) handler();
                        Thread.Sleep(200);
                    }
                });
            Changed += () =>
                {
                    if (print && Queue.Count > 0)
                        lock (Queue)
                        {
                            foreach (int i in Queue)
                                Console.WriteLine(i);
                            Queue.Clear();
                        }
                };
            thread.Start();
            while (thread.IsAlive)
            {
                Console.WriteLine("Для вывода нажмите y, для прекращения вывода - n");
                print = Console.ReadKey(true).Key == ConsoleKey.Y;
            }
            Console.ReadKey();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5