.NET 4.x Красиво получать данные - C#
Формулировка задачи:
VS 2013, C#, WPF.
При обращении программы к COM или USB-порту происходит подвисание на время чтения данных из порта. А как-бы в это время отображать хотя-бы мигающее сообщение поверх окна типа "Подождите. Идет получение данных." ?
Или другую сопутсвующую анимацию, типа вращающихся сегментов или бегущих по проводах данных.
Решение задачи: «.NET 4.x Красиво получать данные»
textual
Листинг программы
public partial class MainWindow : Window { private BackgroundWorker BackWork = new BackgroundWorker(); public MainWindow() { InitializeComponent(); // назначение методов BackWorkGetWeather.DoWork += BackWork_DoWork; BackWorkGetWeather.RunWorkerCompleted += BackWork_DoWorkComplete; } // это и есть выполнение фоновой задачи private void BackWork_DoWork(object sender, DoWorkEventArgs e) { List<string> readList = new List<string>(); MyClass mClass = (MyClass)e.Argument; // через MyClass передаются входящие данные // код получающий данные //.............. //.............. e.Result = readCOMPortList; } // метод вызывается по завершению BackWork_DoWork private void BackWork_DoWorkComplete(object sender, RunWorkerCompletedEventArgs e) { List<string> readList = new List<string>(); if(e.Error == null) { readtList = (List<string>)e.Result; // получаем результат работы BackWork_DoWork // код, обрабатывающий полученные данные // код, обновляющий данные в Control'ах // ............ // ............ } } private void OnLoaded(object sender, RoutedEventArgs e) { MyClass mClass = new MyClass(); mClass.Port = "PORT_NAME"; mClass.Speed = "19200"; // и так далее // ....... // собственно запуск фоновой задачи BackWork.RunWorkerAsync(mClass); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д