|
0 / 0 / 0
Регистрация: 11.05.2016
Сообщений: 9
|
||||||
Вывод результатов PING в Label.Text29.11.2019, 13:26. Показов 3057. Ответов 10
Метки нет (Все метки)
Решил начать изучение C# с простенькой проги для себя по выводу индикатора результов команды Ping. Почитал форум, приспособил код для себя немного. Работает, но форма зависает. НАсоклько я понял это из-за того что программа выполняет функцию ping_server() в главном потоке. Пытаюсь вынести в отдельный поток, но тогда выражение не срабатывате и результат не выводится.
0
|
||||||
| 29.11.2019, 13:26 | |
|
Ответы с готовыми решениями:
10
Вывод чисел в label.text Сохранение текста (label.text или textBox.text) для повторного использования
|
|
Модератор
|
|
| 29.11.2019, 21:50 | |
|
DemoDiplom, обновление UI элементов должно происходить в основном потоке.
Для этого лучше использовать асинхронные методы. Экземпляр таймера нужно объявить как член (поле) типа. Метод для пинга должен возвращать значение пинга и сам он не должен создавать потоки. После асинхронного вызова метода, управление вернётся в основной поток и уже в нем надо присвоить значение UI элементу.
1
|
|
|
0 / 0 / 0
Регистрация: 11.05.2016
Сообщений: 9
|
|
| 29.11.2019, 22:16 [ТС] | |
|
Все отлично, но я пока настолько глубоко не понимаю C#. А можно как то на примере показать пжлст?) Читаю литературу но пока мало что понимаю, пытаюсь вот на примерах и практики что то понять)
0
|
|
|
Модератор
|
||||||
| 30.11.2019, 10:25 | ||||||
|
DemoDiplom, с WinForms давно не работал, сейчас я в поездке и без компа до НГ.
Попробую частично накидать в коде для прояснения, но полный рабочий код не смогу сделать.
1
|
||||||
|
0 / 0 / 0
Регистрация: 11.05.2016
Сообщений: 9
|
||||||
| 30.11.2019, 10:48 [ТС] | ||||||
|
Попробовал, но получились ошибки, в коде вынес в комменты, где ругается компилятор:
0
|
||||||
|
Модератор
|
||||||
| 30.11.2019, 19:26 | ||||||
|
DemoDiplom, таймер должен быть полем класса только для чтения.
Может вы пропустили первую строку из моего кода? Уберите объявление таймера из метода - обязательно! Добавлено через 3 минуты DemoDiplom, тип свойства RoundtripTime не смотрел. Если оно long, то поменяйте тип переменной. Это ни на что не влияет.
0
|
||||||
|
0 / 0 / 0
Регистрация: 11.05.2016
Сообщений: 9
|
|||||||
| 01.12.2019, 08:59 [ТС] | |||||||
|
System.InvalidOperationException: "Уже выполняется асинхронный вызов. Он должен быть завершен или отменен, прежде чем можно будет вызвать этот метод."
0
|
|||||||
|
Модератор
|
||||||
| 01.12.2019, 13:10 | ||||||
Сообщение было отмечено DemoDiplom как решение
Решение
DemoDiplom, значит таймер работаем быстрое чем успевает метод вернут значение.
Измените метод таймера
1
|
||||||
|
0 / 0 / 0
Регистрация: 11.05.2016
Сообщений: 9
|
||||||
| 02.12.2019, 10:52 [ТС] | ||||||
Добавлено через 16 секунд Сайт глючит сильно. Вобщем код работает. Ошибку выдает при повторном нажатии на button1. НАверно надо в исключениях обрабатывать данную ситуацию?!) ЗА помощь огромное спасибо, буду дальше ковыряться.
0
|
||||||
|
Модератор
|
|
| 02.12.2019, 11:58 | |
|
DemoDiplom, нельзя дважды подряд вызывать ping_server().
В нём есть присоединение метода timer.Tick += TimerTickAsync;.И получается в одном Tick этот метод вызывается дважды - ловите исключение. Для WinForms оптимальным будет добавить на форму таймер и там сразу указать метод для Tick. А из кода убрать поле таймера и присоединение метода. Также надо добавить функционал на кнопку. Если таймер не запущен - кнопка его запускает. А если запущен - кнопка его останавливает. Получится, что перед повторным запуском сначала таймер будет остановлен.
1
|
|
|
0 / 0 / 0
Регистрация: 11.05.2016
Сообщений: 9
|
|
| 02.12.2019, 22:54 [ТС] | |
|
Так и сделал) спасибо за помощь и разьяснения)
0
|
|
| 02.12.2019, 22:54 | |
|
Помогаю со студенческими работами здесь
11
Вывод результатов арифметических действий в edit или label Написать программу, осуществив ввод одномерного массива через TextBox, а вывод результатов в Label Индикация результатов команды ping Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|