|
6 / 5 / 1
Регистрация: 29.12.2014
Сообщений: 177
|
|
Критический участок кода18.10.2019, 14:21. Показов 1241. Ответов 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
|
|||
|
фрилансер
6462 / 5670 / 1131
Регистрация: 11.10.2019
Сообщений: 15,096
|
|
| 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 ошибки при компиляции ниже участок кода, с которым праблема и скрины ошибки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|