Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
Froddy

Перезапуск потоков в visual c++v.6

25.01.2009, 13:32. Показов 1703. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Господа, может кто-нибудь знает как можно, и можно ли вообще, вызывать несколько раз поток, который создается 1 раз
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.01.2009, 13:32
Ответы с готовыми решениями:

Область видимости общей переменной для потоков + закрытие потоков
Есть два вопроса про потоки. Первый. Как можно сделать общую переменную для основного потока и моих ? struct ThreadInfo1 { int...

Замедление работы потоков если запущено несколько потоков
Есть отдельный поток который движет красным квадратом. Он каждую миллисекунду меняет положение квадрата на пиксель. Есть другой поток, он...

Разработать программу, генерирующую n потоков в пуле потоков CLR
Добрый вечер. Решил поделать старые лабораторные, которые мне уже давно нужно было сдавать, но встрял на одном задании: "Разработать...

4
froddy
25.01.2009, 14:00
Суть в том что у меня в цикле создаются потоки, а я хочу до цикла создать поток, а затем обращаться к потоку в цикле:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for (int i =0; i<L_mod+2;i++){
        mul.w0 = to_int(res  & 1);
        mul.u_i = to_int((u_f>>i)&1);
 
 
        hThread[0] = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)y_thread,(PVOID) &mul ,0,&dwThread[0]);
        
        hThread[1] = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)uiv_thread,(LPVOID)&mul, 0,&dwThread[1]);
        
        WaitForMultipleObjects(2, hThread, TRUE, INFINITE);
                
        res=(res+uiv_res_thread+(y_res_tthread*module))/2;
 
 
        CloseHandle(hThread[1]);
        CloseHandle(hThread[0]);
    }
Можно ли сделать так,чтобы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
hThread[0] = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)y_thread,(PVOID) &mul ,CREATE_SUSPENDED,&dwThread[0]);
 
    hThread[1] = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)uiv_thread,(LPVOID)&mul,CREATE_SUSPENDED,&dwThread[1]);
 
for (int i =0; i<L_mod+2;i++){
        mul.w0 = to_int(res  & 1);
        mul.u_i = to_int((u_f>>i)&1);
 
        ResumeThread(hThread[1]);
        ResumeThread(hThread[0]);
 
        WaitForMultipleObjects(2, hThread, TRUE, INFINITE);
        
        SuspendThread(hThread[0]);
        SuspendThread(hThread[1]);
 
        res=(res+uiv_res_thread+(y_res_tthread*module))/2;
 
    }
 Аватар для Dimazzzzzz
589 / 96 / 6
Регистрация: 24.01.2009
Сообщений: 379
25.01.2009, 14:01
Можно попробовать создать бесконечный цикл в потоке:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
DWORD WINAPI ThreadProc(LPVOID A) {
    //создаем все, что нужно для работы потока
    //...
 
    
    //Запускаем бесконечный цикл
    while (true) {
    //Можно ограничить кол-во вызовов этой функции в секунду
    //с помощью ф-ии WinAPI, правда, если нужна более точная работа,
    //то устанавливать время задержки больше 60 (примерно) миллисекунд
    Sleep (100);
 
    //Что-то делаем ...
    
    //При каком-то условии можно или ExitThread (код_возврата),
    //освободив перед этим динамически созданные объекты, буферы и т.д., или
    //выйти из цикла, написав break - тогда освобождать все надо после цикла
    }//end while
    
    //Освобождаем занятую память
}
0
froddy
25.01.2009, 14:02
Суть в том что у меня в цикле создаются потоки, а я хочу до цикла создать поток, а затем обращаться к потоку в цикле:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for (int i =0; i<L_mod+2;i++){
        mul.w0 = to_int(res  & 1);
        mul.u_i = to_int((u_f>>i)&1);
 
 
        hThread[0] = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)y_thread,(PVOID) &mul ,0,&dwThread[0]);
        
        hThread[1] = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)uiv_thread,(LPVOID)&mul, 0,&dwThread[1]);
        
        WaitForMultipleObjects(2, hThread, TRUE, INFINITE);
                
        res=(res+uiv_res_thread+(y_res_tthread*module))/2;
 
 
        CloseHandle(hThread[1]);
        CloseHandle(hThread[0]);
    }
Можно ли сделать так,чтобы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    hThread[0] = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)y_thread,(PVOID) &mul ,CREATE_SUSPENDED,&dwThread[0]);
 
    hThread[1] = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)uiv_thread,(LPVOID)&mul,CREATE_SUSPENDED,&dwThread[1]);
 
for (int i =0; i<L_mod+2;i++){
        mul.w0 = to_int(res  & 1);
        mul.u_i = to_int((u_f>>i)&1);
 
        ResumeThread(hThread[1]);
        ResumeThread(hThread[0]);
 
        WaitForMultipleObjects(2, hThread, TRUE, INFINITE);
        
        SuspendThread(hThread[0]);
        SuspendThread(hThread[1]);
 
        res=(res+uiv_res_thread+(y_res_tthread*module))/2;
 
    }
Заранее благодарю)))
 Аватар для Dimazzzzzz
589 / 96 / 6
Регистрация: 24.01.2009
Сообщений: 379
25.01.2009, 14:09
Эмм, вообще ты можешь сколько хочешь приостанавливать поток. Или можешь создать флаг (любой), который будешь проверять в цикле в потоке
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.01.2009, 14:09
Помогаю со студенческими работами здесь

Создание и завершение процессов и потоков. Приоритеты выполнения потоков
Здравствуйте. Буду очень раз если поможете понять,что конкретно нужно сделать в вот этом задании,пока особого представления о...

Синхронизация потоков на элементарном уровне (переключение потоков)
в общем разбираюсь с потоками, на сколько понял мне нужен lock Вот имеется просто пример public void RunAdd() ...

Синхронизация потоков: проблема гонки потоков
Есть проблема в синхронизации потоков, которую я не знаю, как решить. Точнее у меня получается типичная гонка потоков. Есть функция,...

Общение пхп потоков, есть ли область видимая для всех пхп потоков?
Добрый день форумчане. Суть вопроса такова - сайт работает с апи вк, как известно у вк есть ограничение: запросы к апи должны идти не...

Какую среду программирования лучше выбрать для обучения языку C++ ? Visual Studio,Visual Basic или Visual C++?
И напишите,чем рекомендуемая вами среда программирования лучше других? Насколько я понял из Википедии они все поддерживают язык...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru