Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
8 / 8 / 4
Регистрация: 09.04.2010
Сообщений: 58

подскажите как выполнить метод в потоке

13.11.2011, 14:15. Показов 860. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  class T1
    {
        public : 
            void metod1();
            void metod2();
     }
 void T1::metod1()
  {
    std::cout<<"metod1"<<endl;
    // пожскажите пожайлуста как в этом методе запустить metod2 в отдельном потоке
  }
 void T1::metod2()
  {
    std::cout<<"metod2"<<endl;
  }
Добавлено через 25 минут
Хотябы простой пример реализации.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.11.2011, 14:15
Ответы с готовыми решениями:

Выполнить метод в заданном потоке
Здравствуйте. Во многих языках есть возможность выполнить метод в заданном потоке, есть ли такая возможность в C++?

Как выполнить сложный метод на фоне (в другом потоке)?
Здравствуйте! В программе есть довольно сложный метод, на выполнение которого нужно время. При его выполнении программа просто...

Выполнить метод в отдельном потоке
Здравствуйте! Пользователь отправляет заявку на странице aspx , дальше идет редирект, как отправить заявку в отдельном потоке а...

2
 Аватар для igorrr37
2895 / 2042 / 992
Регистрация: 21.12.2010
Сообщений: 3,791
Записей в блоге: 9
13.11.2011, 16:46
сделать method2 статическим
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <windows.h>
#include <process.h>
 
class T1
{
public:
   void method1();
   void method3();
   static void method2(void*);
};
 
void T1::method1()
{
   std::cout << "method1" << std::endl;
   HANDLE hThread = (HANDLE)_beginthread(T1::method2, 0, (void*)this);
   WaitForSingleObject(hThread, INFINITE);
}
void T1::method2(void* par)
{
   T1* p = (T1*)par;
   std::cout<<"method2"<< std::endl;
   p->method3();
 
}
void T1::method3()
{
   std::cout << "method3\n";
}
 
int main()
{
   T1 o;
   o.method1();
   return 0;
}
1
8 / 8 / 4
Регистрация: 09.04.2010
Сообщений: 58
13.11.2011, 16:57  [ТС]
Если metod2 сделать static то будет недоступен this.
Решил проблему так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
   class T1
{
public:
   DWORD WINAPI metod1(PVOID pvContext);
   friend DWORD WINAPI _tInnerThread(PVOID pvContext);
   void method2();
};
DWORD WINAPI _tInnerThread(PVOID pvContext) 
 { 
    T1 * pClass = static_cast<T1*>(pvContext); 
    return(pClass->metod1(pvContext)); 
 }
 
void T1:: metod2()
{
   DWORD ThreadId;  
   HANDLE hThread = CreateThread(NULL,0,_tInnerThread,this,0,&ThreadId);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2011, 16:57
Помогаю со студенческими работами здесь

Выполнить метод класса в отдельном потоке
Есть некий класс, методы которого принимают на вход некие параметры. Экземпляр класса - глобальная переменная, создается в OnCreate, пара...

Выполнить метод в отдельном потоке. Форма виснет
Всем привет, вызываю метод так: private void button1_Click_1(object sender, RoutedEventArgs e) { new...

Подскажите - не вызывается метод в потоке
progress = ProgressDialog.show(getActivity(), &quot;Please wait...&quot;, &quot;Applying changes may take a few minutes.&quot;,...

Как выполнить функцию в отдельном потоке?
Вызывается функция, которая выполняется достаточно долго. Как вызвать эту функцию в отдельном потоке

Как выполнить делегат в потоке Task
Создал объект Task для работы PipeServer. Возникла необходимость вызвать синхронно в потоке Task некий делегат. В итоге должен получиться...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru