Показывать диалог progressBar / Wait при получении последовательных данных - PullRequest
0 голосов
/ 09 октября 2011

Как я могу показать индикатор выполнения (не в процентах, просто бесконечный индикатор) или диалоговое окно ожидания, пока выполняется действие в _DataReceived?

например:.

private void sp_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            try
            {
                while (sp.BytesToRead > 1)
                {
                    string line = sp.ReadLine().Trim();

                    if (line == "EOC")
                    {
                        //finish
                    }
                    else
                    {
                        //string data = sp.ReadExisting();
                        _serialBuffer.Enqueue(line);
                    }
          }

 }

1 Ответ

1 голос
/ 09 октября 2011

Просто добавьте индикатор выполнения, установите для Style значение ProgressBarStyle.Marquee, чтобы оно указывало на то, что он не дает процентов. Теперь увеличьте его значение следующим образом: (Я предполагаю, что этот код в Form, иначе, если вы используете BackgroundWorker, используйте его ReportProgress метод)

private void sp_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                try
                {
                    while (sp.BytesToRead > 1)
                    {
                        string line = sp.ReadLine().Trim();

                        if (line == "EOC")
                        {
                            //finish
                            this.progressBar1.Visible = false;
                        }
                        else
                        {
                            //string data = sp.ReadExisting();
                            _serialBuffer.Enqueue(line);
                            if (this.progressBar1.Value < 100)
                                this.progressBar1.Value++;
                            else
                                this.progressBar1.Value = 0;
                        }
              }

     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...