Составители:
// для окон всех потоков
bUseMutex = !bUseMutex; // переключение параметров
// исключающего семафора
default:
break;
}
return;
}
4. Рассмотреть функции изменения параметров.
Функция DoThread в
ответ на соответствующие команды меню изменяет параметры потока,
выбранного в списке. Эта функция может повысить или понизить приоритет
потока, а также приостановить или возобновить его выполнение. Текущее
состояние каждого потока записывается в массив iState. В массиве hThreads
сохраняются дескрипторы каждого из четырех вторичных потоков.
/*DO THREAD - Изменяет приоритет потока или его состояние в ответ на
команды меню. */
void DoThread( int iCmd )
{
int iThread;
int iPriority;
// Определяет, какой из потоков выбран.
iThread = ListBox_GetCurSel ( hwndList ) ;
switch ( iCmd )
{
case IDM_SUSPEND:
// Если поток не остановлен, останавливает его.
if( iStatefiThread] != SUSPENDED )
{
Suspend/Thread ( hThread[iThread] );
iState[iThread] = SUSPENDED;
}
break;
case IDM_RESUME:
// Если поток не активен, активизирует его.
if( iState[iThread] != ACTIVE )
{
ResumeThread( hThread(iThread] );
iState[iThread] = ACTIVE;
}
break;
case IDM_INCREASE:
// Повышает приоритет потока, если только он
12
// для окон всех потоков bUseMutex = !bUseMutex; // переключение параметров // исключающего семафора default: break; } return; } 4. Рассмотреть функции изменения параметров. Функция DoThread в ответ на соответствующие команды меню изменяет параметры потока, выбранного в списке. Эта функция может повысить или понизить приоритет потока, а также приостановить или возобновить его выполнение. Текущее состояние каждого потока записывается в массив iState. В массиве hThreads сохраняются дескрипторы каждого из четырех вторичных потоков. /*DO THREAD - Изменяет приоритет потока или его состояние в ответ на команды меню. */ void DoThread( int iCmd ) { int iThread; int iPriority; // Определяет, какой из потоков выбран. iThread = ListBox_GetCurSel ( hwndList ) ; switch ( iCmd ) { case IDM_SUSPEND: // Если поток не остановлен, останавливает его. if( iStatefiThread] != SUSPENDED ) { Suspend/Thread ( hThread[iThread] ); iState[iThread] = SUSPENDED; } break; case IDM_RESUME: // Если поток не активен, активизирует его. if( iState[iThread] != ACTIVE ) { ResumeThread( hThread(iThread] ); iState[iThread] = ACTIVE; } break; case IDM_INCREASE: // Повышает приоритет потока, если только он 12
Страницы
- « первая
- ‹ предыдущая
- …
- 10
- 11
- 12
- 13
- 14
- …
- следующая ›
- последняя »