📄 priority.c
字号:
/*
**===========================================================================
** PRIORITY.C - Provide functions for time-critical code
**---------------------------------------------------------------------------
** Copyright (c) 2000, 2001 Epson Research and Development, Inc.
** All Rights Reserved.
**===========================================================================
*/
#ifdef INTEL_W32
#include <windows.h>
#endif
#include "hal.h"
/*-------------------------------------------------------------------------*/
static const char Revision[] = "PRIORITY.C=$Revision: 4 $";
/*-------------------------------------------------------------------------*/
int _ThreadPriorityNestCount = 0;
#ifdef INTEL_W32
static unsigned SavedProcessPriority;
static unsigned SavedThreadPriority;
int seBeginHighPriority(void)
{
if (_ThreadPriorityNestCount == 0)
{
SavedProcessPriority = GetPriorityClass(GetCurrentProcess());
SavedThreadPriority = GetThreadPriority(GetCurrentThread());
SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
}
_ThreadPriorityNestCount++;
return _ThreadPriorityNestCount;
}
int seEndHighPriority(void)
{
if (_ThreadPriorityNestCount == 1)
{
SetPriorityClass(GetCurrentProcess(), SavedProcessPriority);
SetThreadPriority(GetCurrentThread(), SavedThreadPriority);
}
if (_ThreadPriorityNestCount > 0)
_ThreadPriorityNestCount--;
return _ThreadPriorityNestCount;
}
#else
int seBeginHighPriority(void)
{
_ThreadPriorityNestCount++;
return _ThreadPriorityNestCount;
}
int seEndHighPriority(void)
{
if (_ThreadPriorityNestCount > 0)
_ThreadPriorityNestCount--;
return _ThreadPriorityNestCount;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -