You are currently viewing Стратегия нано-сна Win32. предложения по этому плану

Стратегия нано-сна Win32. предложения по этому плану

Это руководство поможет вам при анализе Win32 Nanosleep.

Обновлено

  • 1. Скачать ASR Pro
  • 2. Запустите программу
  • 3. Нажмите "Сканировать сейчас", чтобы найти и удалить все вирусы на вашем компьютере.
  • Ускорьте свой компьютер сегодня с помощью этой простой загрузки. г.

    Ты

    Если вам действительно нужно наносекундное разрешение, ntdll.dll , вероятно, имеет NtDelayExecution :

      NTSYSAPI NTSTATUS NTAPI NtDelayExecution (BOOLEAN Alertable, PLARGE_INTEGER Этот интервал задержки); 

    Однако

    , вероятно, не то, чего все хотят:

    Его можно отложить намного дольше, чем указано выше – при условии, что время потока будет уменьшено (0,5-15 мс), и оно может быть равно двум.
    Клиенты могут увидеть это с помощью следующего кода:

      #ifdef __cplusplusВнешний "C"#end if#ifdef _M_X64typedef long long intptr_t;#Другаяtypedef int intptr_t;#end ifint __cdecl printf (char const *, ...);int _unloaddll (intptr_t);Intptr_t __cdecl __cdecl _loaddll (char *);int (__cdecl * __cdecl _getdllprocaddr (intptr_t, char *, intptr_t)) (недействительно);определение типа организации _LARGE_INTEGER * PLARGE_INTEGER;typedef часто бывает NTSTATUS;typedef NTSTATUS __stdcall NtDelayExecution_t (поскольку таблица предупреждений без знака, диапазон обычно равен PLARGE_INTEGER); NtDelayExecution_t * NtDelayExecution = 0;typedef NTSTATUS __stdcall NtQueryPerformanceCounter_t (PLARGE_INTEGER PerformanceCounter, PLARGE_INTEGER PerformanceFrequency); NtQueryPerformanceCounter_t * NtQueryPerformanceCounter означает 0;#ifdef __cplusplus#end ifint main (int argc, char (пустой) argv [])    очень большая задержка соответствует 1 * - (1000/100) * сравнимо с интервалами 100 нс * -, counts_per_sec = 0;    длинные длинные ноги [2];    intptr_t ntdll равно _loaddll ("ntdll.dll");    NtDelayExecution означает (NtDelayExecution_t *) _ getdllprocaddr (ntdll, "NtDelayExecution", -1);    NtQueryPerformanceCounter = (NtQueryPerformanceCounter_t *) _ getdllprocaddr (ntdll, "NtQueryPerformanceCounter", -1);    получено (int = 0; i <10; i ++)        NtQueryPerformanceCounter ((PLARGE_INTEGER) & поверхности [0], (PLARGE_INTEGER) & counts_per_sec);        NtDelayExecution (0, (PLARGE_INTEGER) затем задержка);        NtQueryPerformanceCounter ((PLARGE_INTEGER) & counter [1], (PLARGE_INTEGER) & counts_per_sec);        printf ("Спящий% lld микросекунд  n", (счетчики [1] 2) поверхности [0]) * 1000000 / counts_per_sec);        Возвращает 0; 
      Спит всего 9455 микросекундЯ спал 15538 микросекундЯ занимался сексом 15401 микросекундыЯ проспал 15708 микросекундСпал 12-15 510 микросекундЯ спал 15 520 микросекунд1248 спящих микросекундЯ отдохнул 996 микросекундЯ проспал 984 микросекундыЯ проспал около 1010 микросекунд 
    • 3 минуты, чтобы помочь вам читать.

    Приостанавливает новое добавление текущего потока, пока не истечет время ожидания.

    Синтаксис

      удалить быстрый сон ( DWORD dwMilliseconds); 

    Параметры

    win32 nanosleep

    Непосредственный процесс, во время которого выполнение должно быть приостановлено, в течение миллисекунд.

    Значение, которое переводит поток в фокус, чтобы передать оставшуюся часть своего временного интервала другому осторожному потоку, готовому к выполнению. Если никакой другой поток выполнить нелегко, функция немедленно возвращается, и, несомненно, весь поток продолжает выполняться. Windows XP: нулевое значение заставляет поток передать этот конкретный остаток своего временного интервала другому потоку с тем же приоритетом, который фактически готов к запуску. Если нет других потоков с равным приоритетом, готовых к запуску, функция немедленно получает преимущество, и поток продолжает выполнение. Этот метод был изменен при подготовке к выпуску Windows Server 2003.

    Значение INFINITE показывает, что блокировку нельзя приостановить.

    Возвращаемое значение функции

    win32 nanosleep

    Это заставляет поток отказываться от оставшейся части своего временного интервала и не может работать из-за интервала, превышающего значение dwMilliseconds. Системное время щелкает с постоянной скоростью. Если dwMilliseconds меньше параметра системных часов, поток может спать, если указанное контролируемое время короче. Если dwMilliseconds больше по сравнению с одним тиком, но меньше двух, часто тайм-аут составляет один-два щелчка и ужасно включен. Чтобы повысить надежность интервала обработки, чаще всего вызывайте функцию timeGetDevCaps, чтобы узнать минимальное поддерживаемое разрешение таймера приготовления, и функцию timeBeginPeriod, чтобы уменьшить разрешение таймера до минимума. Будьте осторожны при вызове timeBeginPeriod, так как ежедневные вызовы могут значительно повлиять на системные часы, энергопотребление устройства и планировщик. Если вы можете вызвать timeBeginPeriod, вызовите его один раз при запуске приложением и обязательно вызовите нашу собственную функцию timeEndPeriod на видимом конце всего приложения.

    win32 nanosleep

    После завершения ожидания поток готов начать поиск. Если вы укажете 0 миллисекунд, соответствующая функция аккуратно отбросит оставшуюся часть этого временного слота, но останется наготове. Обратите внимание, что завершенное осторожно не может быть выполнено немедленно. Следовательно, поток, вероятно, будет предлагать только определенное количество времени сразу после истечения интервала простоя. Дополнительные ответы см. Приоритеты планирования .

    • Код, который продолжается или косвенно разрешает окна (например, DDE и / или COM CoInitialize). Если поток создает окна, элемент должен обрабатывать сообщения. R Сообщения отправляются во все окна системы. Если у вас может быть ветка, которая используетСпите бесконечно, ваша система заблокирована.
    • Потоки a нужны для проверки на параллелизм. Для исследования: порт завершения ввода-вывода или пространство потоков ограничивают количество выделенных потоков, которые могут выполняться в большинстве случаев; если максимальное количество сообщений уже запущено, никакие дополнительные сопутствующие потоки не могут запускаться, пока выполнение не будет тщательно завершено. Если поток использует гибернацию в качестве достаточного фактора, способствующего ожиданию одного из нулевых периодов времени в качестве одного из дополнительных связанных потоков, с помощью которых может работать, процесс, вероятно, будет заблокирован.

    Для сценария попробуйте это MsgWaitForMultipleObjects Где MsgWaitForMultipleObjectsEx , скорее, чемспать...

    Обновлено

    Вы устали от того, что ваш компьютер работает медленно? Раздражают разочаровывающие сообщения об ошибках? ASR Pro - это решение для вас! Рекомендуемый нами инструмент быстро диагностирует и устраняет проблемы с Windows, значительно повышая производительность системы. Так что не ждите больше, скачайте ASR Pro сегодня!


    Windows Phone 8.1: эта функция также будет поддерживаться позже для приложений Windows Phone Store, имеющихся в Windows Phone 8.1.

    Windows 8 и одна Windows Server 2012 R2: эта функция доступна только для приложений Магазина Windows в Windows 8.1, Windows Server 2012 R2 и более поздних версиях.

    Примеры

    Требования

    минимум, прикрепленный к клиенту Windows XP [Рабочий стол | Приложения UWP Apps]
    Минимальный добавленный сервер Windows Server 2003 [Рабочий стол | Приложения UWP Apps]
    Целевая платформа Windows
    Заголовок synchapi.h (включает Windows Vista, Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows.h)
    Библиотека Kernel32.lib; WindowsPhoneCore.lib на Windows Phone 8.1
    DLL Kernel32.dll; KernelBase.dll в Windows Phone 8.1

    См. также

    Ускорьте свой компьютер сегодня с помощью этой простой загрузки. г.

    Win32 Nanosleep Fix Suggestions
    Suggerimenti Per La Correzione Di Win32 Nanosleep
    Suggesties Voor Reparatie Van Win32 Nanosleep
    Suggestions De Correctifs Win32 Nanosleep
    Win32 Nanosleep 수정 제안
    Win32 Nanosleep-Fix-Vorschläge
    Win32 Nanosleep Fix Förslag
    Sugestões De Correção De Nanosleep Win32
    Sugestie Naprawy Nanosleep Dla Win32
    Sugerencias De Corrección De Win32 Nanosleep

    г.