Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Логос
0 / 0 / 0
Регистрация: 02.11.2009
Сообщений: 8
#1

Запуск потока для функции с параметрами - C++

04.11.2009, 16:32. Просмотров 1719. Ответов 1
Метки нет (Все метки)

Доброго дня!

Что хочется: распараллелить выполнение процедуры func. Давая новым потокам соответствующие параметры.

На c# я использовал следующую конструкцию:
C#
1
2
3
4
     ThreadStart t = delegate { func(a,b,c); };
     new Thread(t).Start();
     func(d,c,e);
     ..........
Тут же видимо нужно мою func(...) привести к LPTHREAD_START_ROUTINE, чтобы запустилась CreateThread(...). Правильно?
А как это сделать?

Пробовал, что-то в духе
C++
1
2
3
4
delegate LPTHREAD_START_ROUTINE funct();
    funct myFunc = gcnew funct( func(a,b,c) );
    DWORD ThreadId;
    HANDLE hThread = CreateThread(NULL, 0, myFunc, 0, 0, &ThreadId);
Но выдает множество ошибок, не понимает слово delegate, хотя вроде бы using namespace System; я написал.

Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2009, 16:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запуск потока для функции с параметрами (C++):

Старт потока с 2 параметрами - C++
Нужно запустить функцию в новом потоке. Но у функции 2 параметра. Естественно, что я попытался создать структуру, и передавать эту...

Запуск программы с параметрами - C++
Здравствуйте. Запускаю такую вот программку: #include <iostream> #include <cstring> using namespace std; int main(int...

Запуск .exe с параметрами? - C++
как реализовать на С++ следующее: запускать приложение с параметрами и выполнять при получении нужного параметра нужную функцию?

Написать перегруженные функции с двумя и тремя параметрами для вычисления суммы, разницы, произведения, доли - C++
Написать перегруженные функции с двумя и тремя параметрами, для вычисления суммы, разницы, произведения, доли. Добавлено через 1 час...

Запуск программы с параметрами с командной строки - C++
Добрый день. Хочу решить простую задачу. Пользователь должен запустить программу с параметрами с консоли. Параметров может быть 2 или 3....

Запуск через командную строку с параметрами - C++
Помогите плиз!!! void main(int argc, char *argv) { int k,N; clrscr(); LIST *lst; FILE *fi,*fo; if (( fi = fopen(argv,"r")) ==...

1
Логос
0 / 0 / 0
Регистрация: 02.11.2009
Сообщений: 8
05.11.2009, 15:00  [ТС] #2
Побеждено.

Если вдруг кому-то когда-нибудь в аналогичной ситуации пригодится:
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
struct MY_STRUCT
{
    int a;
    int b;
    //..... и пр параметры нашей ф-ии
};
 
DWORD WINAPI MyThread(MY_STRUCT y)  //все параметры убираем в структуру
{ 
    printf("%d",y.i);
    return 0; 
} 
.....
{
        ..........
    DWORD dwThreadId;
    MY_STRUCT *m=new MY_STRUCT();
    m->a=5;
    m->b=10;
    LPVOID u=new LPVOID();
    MY_STRUCT* pStruct = reinterpret_cast<MY_STRUCT*>(u);
    pStruct=m;
    HANDLE hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)MyThread, (LPVOID)pStruct,0,&dwThreadId); 
        ..........
}
Вполне допускаю, что это далеко не самое выдающееся решение, но оно у меня заработало
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2009, 15:00
Привет! Вот еще темы с ответами:

Запуск приложения с параметрами. Работа с аргументами - C++
Приветствую всех, у меня вопрос по созданию консольного приложения на вход которому передаются след. аргументы в argv год YYYY. В...

Препроцессорные макросы, запуск программы с параметрами - C++
Доброе время суток! Собственно вопрос, пишу маленькую софтину по автоматизации сборки dmg образов! И вопрос чисто удобства, где то...

Запуск потока из другого приложения - C++
Подскажите как запустить/остановить, приостановить/возобновить поток одного процесса из другого?

Задачник Абрамян. Процедуры и функции. Функции с числовыми параметрами - C++
Описать функцию Even(K) логического типа, возвращающую TRUE, если целый параметр K является четным, и FALSE в противном случае. С ее...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru