|
if (fSyncChecked) {
// Если пользователь хочет синхронизировать потоки
EnterCriticalSection(&g_CriticalSection);
}
// Преобразуем символьное представление числа в целое значение и добавляем 1
_stscanf(g_szNumber, __TEXT("%d"), &nNumber);
g_szNumber++;
// Преобразуем новое число в строку
/* */ nDigit = 0;
while (nNumber!= 0) {
// Помещаем разряд числа в строку
g_szNumber[nDigit++] = (TCHAR)
(__TEXT("0") + (nNumber % 10));
// Вызов здесь функции Sleep сообщает системе, что неиспользованный остаток текущего
// кванта времени нужно отдать другому потоку. Этот вызов необходим в однопроцессорной
// системе для того, чтобы результат синхронизации потоков или отсутствия таковой стали
// очевидны. Обычно в программах функцию Sleep для этого не вызывают.
Sleep(0);
// Готовимся получить следующий разряд
nNumber /= 10;
}
// Все разряды преобразованы в строку.
// Завершаем строку.
g_szNumber[nDigit] = 0;
// Символы сформированы в обратном порядке: восстанавливаем нормальный порядок.
// Если ANSI, вызываем strrev, а если Unicode. - _wcsrev.
_tcsrev(g_szNumber);
/* */
if (fSyncChecked) {
// Если пользователь хочет синхронизировать потоки.
LeaveCriticalSection(&g_CriticalSection);
}
// Если пользователь - после каждой итерации хочет видеть на экране значение Cntr:
Дата добавления: 2015-07-11; просмотров: 80 | Нарушение авторских прав