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

Создание WinApi функции для нахождения максимального элемента массива в нескольких потоках - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что изменить чтобы каждый элемент массива уменьшился на 20? http://www.cyberforum.ru/cpp-beginners/thread697918.html
#include <iostream> using namespace std; int main() { int mas; int i; for (i=0; i<10; i++) { cout << ""<< ":"; cin >> mas; mas=i-20;
C++ Сохранить массив структур в файл как это правильно организовать? Дана последовательность записей с информацией о сотрудниках предприятия. Каждая запись включает реквизиты: ФИО (фамилия, имя, отчество ); ДР (дата рождения – год,... http://www.cyberforum.ru/cpp-beginners/thread697915.html
C++ Класс для матрицы представленной динам. массивом указателей на строки
Матрица переменной размерности, представленная динамическим массивом указателей на строки матрицы (линейные динамические массивы).Нужно создать класс для данного задания.Подскажите как это...
C++ Непонтное поведение массива
Решил попрактиковаться с выделением памяти из этой статьи: http://www.cyberforum.ru/cpp-beginners/thread695709-page2.html Решил транспонировать матрицу. Столкнулся с непонятной проблемой ( описание...
C++ Компилятор для C++ http://www.cyberforum.ru/cpp-beginners/thread697895.html
Подскажите компилятор C++. с поодержкой всех возможностей шаблонов (желательно с редактором) Не среду громоздкую, а чисто под кансоль
C++ подскажите в чем ошибка только сегодня начал знакомство и вот уже проблемка)подскажите пожалуйста в чем ошибка)) Две дроби a/b и c/d можно сложить следующим образом:a/b + c/d = (a*d + b* c)/(b*d)Например, 1/4 + 2/3 =... подробнее

Показать сообщение отдельно
gector378
Сообщений: n/a

Создание WinApi функции для нахождения максимального элемента массива в нескольких потоках - C++

14.11.2012, 21:50. Просмотров 329. Ответов 1
Метки (Все метки)

Задача состоит в следующем: ножно написать программу, которая будет находить максимальное значение массива в нескольких потоках. Я написал вот етот код но он страшно ругается на 8 потоках
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
DWORD WINAPI My(LPVOID arg)
{
        start=end;
        end=start+(size-start)/(Thread_Count-threadNow+1);
        for(int i=start;i<end;i++)
        {
              if(tMax<mas[i])
              {
                 tMax=mas[i];
              }
        }
        threadNow++;
}
и сам код кнопки вызова
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
        switch(ComboBox1->ItemIndex)
        {
        case -1:Thread_Count=1;break;
        case 0: Thread_Count=1;break;
        case 1: Thread_Count=2;break;
        case 2: Thread_Count=4;break;
        case 3: Thread_Count=8;break;
        }
        my_Handle = new HANDLE[Thread_Count];
        my_Dword = new DWORD[Thread_Count];
 
        size=CSpinEdit1->Value;
        StringGrid1->ColCount=size;
        end=0;
        param=new int[Thread_Count];
        
        mas=new int[size];
        for(int j = 0; j<Thread_Count; j++)
        {
                param[j] = j+1;
        }
        for(int i=0;i<size;i++)
        {
            mas[i]=rand()%20;
            StringGrid1->Cells[i][0]=mas[i];
        }
        tMax=mas[0];
       for(int i=0;i<Thread_Count;i++)
       {
           my_Handle[i] = CreateThread(NULL,0,My,0,NORMAL_PRIORITY_CLASS,& my_Dword[i]);
       }
       ShowMessage(IntToStr(tMax));
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru