![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 16.02.2013
Сообщений: 37
|
![]()
Сделал половину кода в форме:
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit2.h" #include <stdio.h> #include <conio.h> #include <windows.h> //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm2 *Form2; int a[100]; int k=0; const n=4; //количество потоков DWORD WINAPI ThreadFunc(PVOID pvParam) { int num,sum = 0,i; num = 25*(*((int *)pvParam)); for(i=num;i<num+25;i++) sum += a[i]*a[i]; *(int*)pvParam = sum; DWORD dwResult = sum; return dwResult; } //--------------------------------------------------------------------------- __fastcall TForm2::TForm2(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm2::ПоказатиClick(TObject *Sender) { int x[n]; int i,rez = 0; DWORD dwThreadId[n],dw,dwResult[n]; HANDLE hThread[n]; for (i=0;i<100;i++) a[i] = i; //создание n дочерних потоков for (i=0;i<n;i++) { x[i] = i; hThread[i] = CreateThread(NULL,0,ThreadFunc,(PVO ID)&x[i], 0, &dwThreadId[i]); if(!hThread); } // ожидание завершения n потоков dw = WaitForMultipleObjects(n,hThread,TR UE,INFINITE); // получение значений, переданных потоком в return for (i=0;i<n;i++) { GetExitCodeThread(hThread[i],&dwResult[i]); Form2->Memo1->Lines->Add((int)dwResult[i]); } for(i=0;i<n;i++) rez+=x[i]; Form2->Edit1->Text=rez; } //--------------------------------------------------------------------------- Не могу разобраться как сделать так что-бы число потоков n вводил пользователь, а результат оставался тот же... |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Триатлон на паскале..помогите найти аглоритм решения задачи? | ЕвгениуS | Помощь студентам | 4 | 05.04.2009 12:22 |
Где найти поиск решения? | Красавчег))) | Microsoft Office Excel | 3 | 10.05.2008 15:02 |
Помогите найти решения? Метод потенциалов! | Dmitry_Boxing | Свободное общение | 0 | 16.02.2008 17:36 |
Найти все целочисленные решения уравнения 3x+4y=2z на заданном отрезке [L,R] | Zmey_by_Nojabrsk | Помощь студентам | 3 | 18.10.2007 22:08 |