Использование потоков в приложениях Windows - Курсовая работа

бесплатно 0
4.5 75
Описание общего алгоритма и интерфейса программы. Метод заполнения массива случайными числами. Метод вычисления длины линии между пространственными точками. Создание, синхронизация и завершение потоков. TThread как абстрактный класс, листинг программы.

Скачать работу Скачать уникальную работу

Чтобы скачать работу, Вы должны пройти проверку:


Аннотация к работе
Министерство образования и науки Государственное образовательное учреждение высшего профессионального образования «ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» Кафедра «Автоматизированные системы обработки информации и управления» Курсовая работа Использование потоков в приложениях Windows Омск 2014 Задание Разработать программу, которая создает в отдельном потоке случайный массив А из N целых чисел в диапазоне от -999 до 999 выводит на экран эти числа. Массив обрабатывается двумя другими потоками В и С, работающими параллельно с потоком, создающим массив. Описание общего алгоритма и интерфейса программы 1.1 Описание общего алгоритма Диаграмма 1 - Выполнение потоков При нажатии кнопки «START», считываются данные с полей «N» и «Time», создаются новые объекты потоков и отправляется сигнал на ихзапуск. Множество экземпляров, полученные от класса TThread , делает C Builder многопоточным приложением. программа интерфейс массив поток __fastcallTMyThread::TMyThread(boolCreateSuspended) : TThread(CreateSuspended) { } //--------------------------------------------------------------------- // B метод объекта Execute(), вставьте код, который должен выполняться, когда поток выполняется. void __fastcallTMyThread::Execute() { //---- Place thread code here ---- } //---------------------------------------------------------------------- Для получения безопасного доступа к управлению свойствами и методами VCL-объектов в потоке предусмотрен метод Synchronize() //--------------------------------------------------------------------------- void __fastcallThreadLenghtLine::Execute() { FreeOnTerminate = true; // освободить занятую потоком память по окончании его работы intColN = N/6; while (true){ sum = 0; WaitForSingleObject(FMain->g_BusyEvent[1], INFINITE); //ждёмразрешениенаобработку ResetEvent(FMain->g_BusyEvent[1]); //запрещаем переформирование массива ResetEvent(FMain->g_BusyEvent[0]); //запрещаем переформирование массива for (int i = 0; iA[i ], FMain->A[i ], FMain->A[i ], FMain->A[i ], FMain->A[i ], FMain->A[i ]); } count ; if(Terminated) break; // прекратитьизвнепоток Synchronize(&Mon); //блокирует одновременный доступ к компоненту нескольких потоков Sleep(T*1000); } } //--------------------------------------------------------------------------- void __fastcallThreadLenghtLine::Mon() { FLenghtLine->RELenghtLine->Lines->Add(IntToStr(count) ) FloatToStr(sum)); SetEvent(FMain->g_BusyEvent[0]); //разрешаем параллельную обработку SetEvent(FMain->g_BusyEvent[1]); //разрешаем параллельную обработку } 3.2 Синхронизация потоков Синхронизации потоков основывается на использовании событий (event).

Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность
своей работы


Новые загруженные работы

Дисциплины научных работ





Хотите, перезвоним вам?