|
6 / 5 / 1
Регистрация: 29.12.2014
Сообщений: 177
|
|
Критический участок кода18.10.2019, 14:21. Показов 1235. Ответов 5
Метки нет (Все метки)
Добрый день, есть участок кода выполняющий манипуляции с параллельным портом и очень хотелось бы что бы во время выполнения этого участка кода он не прерывался всякими сборщиками windows и т д. Какие есть способы этого достигнуть по мимо повышения приоритета потока ?
0
|
|
| 18.10.2019, 14:21 | |
|
Ответы с готовыми решениями:
5
Объясните участок кода Объясните пожалуйста участок кода |
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 18.10.2019, 14:23 | |
|
0
|
|
|
6 / 5 / 1
Регистрация: 29.12.2014
Сообщений: 177
|
|
| 18.10.2019, 14:27 [ТС] | |
|
hoggy, Мне как то так же сказали что достичь точных задержек в микросекундах невозможно под windows, а оказалось QueryPerformanceCounter замечательно с этим справляется.
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 18.10.2019, 15:28 | |||
|
под нагрузкой он не сможет стабильно выдержать точность даже порядка 100 миллисекунд. ты конечно можешь возразить: "а у меня же дома работает" у тебя дома это может сработать если: *тут 100500 разных факторов* ключевой момент: нагрузка на систему. если ты у себя дома запустишь софтинку под нагрузкой, (например, 20 одновременно активных процессов), таймер - это будет первое, что откажет. просто потому, что процессор не резиновый. если в системе 20 активных процессов, а у процессора всего 2 ядра, то лаги по квантам времени процессора неизбежны. для наглядности, сделай функцию sleep, которая будет усыплять процесс на миллисекундное время, засекай время, которое процесс по факту проспал, и время, которое он в теории должен был поспать. если реальное время отличается от идеального больше чем на 60 миллисекунд (не микро, милли, Карл!), тогда будем считать, что тест провалился. далее запусти сразу несколько штук экземпляров тестовых приложений.
0
|
|||
|
фрилансер
6455 / 5656 / 1129
Регистрация: 11.10.2019
Сообщений: 15,067
|
|
| 18.10.2019, 15:53 | |
|
Leitto, если прям на самом деле всё так критично, придётся делать железяку, работающую с портом снаружи. А с железякой же комп пусть общается как вздумается
1
|
|
|
6 / 5 / 1
Регистрация: 29.12.2014
Сообщений: 177
|
|
| 18.10.2019, 17:28 [ТС] | |
|
Алексей1153, Естественно это самый правильный подход и железяку сделать намного проще и проблем меньше.
Добавлено через 3 минуты hoggy, И тут вы конечно же правы однако есть такая вещь как станки ЧПУ и они многие работают на LPT порту Самый яркий пример это наверное программа mach3 они указали минимальную конфигурацию и о том что рекомендуется держать на таком компе только одну программу (mach3) прошу не придираться к тому что у винды куча своих процессов и т д. Однако у них импульсы достаточно стабильные в прочем я и на свои особо не жалуюсь. Но мне захотелось чуть расширить их функционал. Написания драйвера весьма сложная тема а вот открыть своему приложению доступ к порту на прямую оказалось куда легче. А и функция sleep(0); на сколько мне известно там указан что это порядок милисекунды, но на деле эта функция создана для приостановления потока и совсем уже не является таймером. хотя в теории sleep(100) приостановит поток на 100 мили секунд. Но это все равно не таймер. А так же невозможно и возможно при определенных факторах это разные вещи. Добавлено через 18 минут Алексей1153, Я когда то слышал, что можно загрузить ЦП на практически на 100 проц (своей программой ) и выполнить необходимый участок кода.
0
|
|
| 18.10.2019, 17:28 | |
|
Помогаю со студенческими работами здесь
6
Что делает этот участок кода? Запустить участок кода в отдельном потоке Есть в С++ способ выполнить участок кода, чтобы в этот момент все остальные потоки не работали? Пожалуйста объясните данный участок кода: typename std::vector<T>::iterator it), где его ещё можно применять? с2079 и с2228 ошибки при компиляции ниже участок кода, с которым праблема и скрины ошибки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|