.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);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д