|
0 / 0 / 2
Регистрация: 04.07.2014
Сообщений: 93
|
|
Нажатие кнопки тормозит фоновый поток07.04.2017, 14:11. Показов 7390. Ответов 49
Метки нет (Все метки)
Здравствуйте!
Есть приложение Windows Form на C# (visual studio 2010) с одной кнопкой (функция кнопки пустая)! В приложении создаю еще один поток (ставил разные приоритеты),который получает Ethernet пакеты из сети каждые 10 мс, и после каждого полученного пакета сразу же отсылает отвентый пакет (см. рисунок). Когда нажимается кнопка, то отдельный поток "подвисает" (см. рисунок)! В клоне этого приложения, написанном на MFC(С++) такого не происходит, хотя перенес все один в один! Как сделать так, чтобы НАЖАТИЕ кнопки не ВЛИЯЛО на остальные потоки процесса?
0
|
|
| 07.04.2017, 14:11 | |
|
Ответы с готовыми решениями:
49
Фоновый поток не отслеживает изменение глобальной переменной |
|
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
|
|
| 09.04.2017, 10:39 | |
|
0
|
|
|
0 / 0 / 2
Регистрация: 04.07.2014
Сообщений: 93
|
|
| 09.04.2017, 12:04 [ТС] | |
|
Вот проект на MFC. Случайные задержки достигают лишь 15 мс, и это хоть обнажимайся кнопкой, по сравнению с ФОРМОЙ, в которой каждое нажатие тормозит поток на 30 - 50мс!!!
0
|
|
|
0 / 0 / 2
Регистрация: 04.07.2014
Сообщений: 93
|
|
| 09.04.2017, 12:07 [ТС] | |
|
Да все равно в каком режиме, результат неизменен! Обычно у меня всегда релиз стоит!
0
|
|
|
0 / 0 / 2
Регистрация: 04.07.2014
Сообщений: 93
|
|
| 09.04.2017, 12:12 [ТС] | |
|
Почему мои сообщения перенаправляются в быстрый ответ, а в общей теме нет?
0
|
|
| 09.04.2017, 17:31 | |
|
0
|
|
|
0 / 0 / 2
Регистрация: 04.07.2014
Сообщений: 93
|
|
| 09.04.2017, 20:48 [ТС] | |
|
Почему тогда во время посылки пакетов с интервалом 10 мс, хоть двигая форму, хоть что делая, задержка достигает погрешности не более 0,0011 с, стоит только понажимать кнопку то сразу разница увеличивается до 0,005с ??? С чем это связано! Я же все показал в самом первом сообщении, как это отражается на общую работу приложения (см. рис первого сообщения)? И почему-то в MFC такого не наблюдается, что же не так с КНОПКОЙ в Форме???? Я бы забил и писал на MFC, но полюбился мне C#! А то что не RTOS, это понятно и так, но речь в моей проблеме совсем не об этом, имеющий глаза, да увидит! Может студию другую установить???
0
|
|
|
|
|
| 09.04.2017, 21:04 | |
|
Потому что см выше:
Я не наблюдаю огромной разницы между примерами на Net и MFC; Вы считаете фатальным совершенно нормальное поведение программы в ОС; Вы ставите тесты для сферической среды в вакууме, отключая всё лишнее и надеясь, что программа в таких условиях и будет эксплуатироваться. Вы, кстати, заметили, что проект на Net занимает 130 МБ, а на MFC всего 10 МБ по показаниям студии? Добавлено через 29 секунд Можете попробовать линукс для сравнения. Добавлено через 1 минуту Также есть возможность соединять нативный и управляемый код.
0
|
|
|
0 / 0 / 2
Регистрация: 04.07.2014
Сообщений: 93
|
|
| 09.04.2017, 21:30 [ТС] | |
|
Это потому, что я с проекта MFC удали папки релиз и дебаг! Ну, или если вы имели ввиду, что проект на NET сам по себе более увесистый? Кстати, а можно ли сделать так, чтобы в результате после компиляции получился один файл exe безо всяких сборок Framework и дополнительных, которые используются, чтобы все свелось в один файл и запускалось даже там, где не установлен Framework????
Кстати, моя программа как раз таки и предполагает эксплуатирование именно в таком режиме, как Вы сказали, в ВАКУУМЕ
0
|
|
|
0 / 0 / 2
Регистрация: 04.07.2014
Сообщений: 93
|
|
| 10.04.2017, 09:17 [ТС] | |
|
Тогда подскажите, как откомпилировать мой проект со вставкой следующего класса (см. скрин)?
Хочу попробовать запустить поток при помощи WinAPI, и посмотреть результат!
0
|
|
|
0 / 0 / 2
Регистрация: 04.07.2014
Сообщений: 93
|
|
| 10.04.2017, 10:03 [ТС] | |
|
То есть, сначала на VC++ создать dll, в которой будет мой класс отправки пакетов, а затем в проекте c# подключить функции из этой dll и создав небезопасный объект, использовать их, я правильно понял?
0
|
|
|
|
|
| 10.04.2017, 10:06 | |
|
В принципе да.
Можно вызвать функцию через pinvoke, которая создаст объект и вернёт указатель на него. Потом можно вызывать другие функции, которые будут по переданному им указателю вызывать методы объекта. И удалить не забыть по завершении программы.
1
|
|
|
0 / 0 / 2
Регистрация: 04.07.2014
Сообщений: 93
|
|
| 10.04.2017, 14:10 [ТС] | |
|
Буду пробовать, так как кнопка не дает покоя. Но нашел проще вариант, - создал чекбокс, клацаю на нем, задержек нет почему то (хотя по сути это та же самая кнопка), могу использовать ее в своей проге вместо кнопки, накрайняк 😀!
Добавлено через 3 часа 42 минуты а создание отдельного потока и функцию времени задержки тоже в dll поместить?
0
|
|
|
0 / 0 / 2
Регистрация: 04.07.2014
Сообщений: 93
|
|
| 10.04.2017, 14:20 [ТС] | |
|
а куда деваться, если мне нужно оперировать с более-менее стабильными 10мс задержки в виндозовских реалиях?!
0
|
|
|
0 / 0 / 2
Регистрация: 04.07.2014
Сообщений: 93
|
|
| 10.04.2017, 14:26 [ТС] | |
|
Задача банальная была, добиться примерных 10 мс, чтобы слать пакеты с таким интервалом именно в Винде. Пример такой задержки я нашел с применением высокоточного каунтера! Метод слип выдает минимум 15 мс
0
|
|
|
|
|
| 10.04.2017, 14:35 | |
|
Ради чего нужно передавать пакеты с таким интервалом?
У слипа можно получить минимум в 1 мс, но это другая история.
0
|
|
| 10.04.2017, 14:35 | |
|
Эмулировать нажатие кнопки мыши или нажатие клавиши на Web - странице
Нажатие кнопки приводит к изменению цвета формы и заголовка кнопки Привязать выполнение действия кнопки на нажатие кнопки Enter Определить нажатие кнопки Home и кнопки сворачивания приложения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|