Головна Головна -> Інше українською -> Інформатика, комп'ютери, програмування -> Синхронізація доступу потоків до загального ресурсу

Синхронізація доступу потоків до загального ресурсу

Назва:
Синхронізація доступу потоків до загального ресурсу
Тип:
Інше
Мова:
Українська
Розмiр:
1,85 KB
Завантажень:
25
Оцінка:
 
поточна оцінка 5.0


Скачати цю роботу безкоштовно
Пролистати роботу: 1  2  3 
Лабораторна робота
Синхронізація доступу потоків до загального ресурсу.


Результат:
Текст основної програми:


//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CGAUGES"
#pragma resource "*.dfm"
TForm1 *Form1;
Rus1 *P1=new Rus1 (true);
Rus2 *P2=new Rus2 (true);
Rus3 *P3=new Rus3 (true);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
if (Form1->CheckBox1->Checked==true)
{ Edit1->Text=" ";
Edit2->Text=" ";
Edit3->Text=" ";
Form1->Edit1->Enabled=true;
Form1->Edit2->Enabled=true;
Form1->Edit3->Enabled=true;
Form1->Repaint();
}
else
{Edit1->Text=300;
Edit2->Text=300;
Edit3->Text=300;
Form1->Edit1->Enabled=false;
Form1->Edit2->Enabled=false;
Form1->Edit3->Enabled=false;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Rus1 *P1=new Rus1 (true);
Rus2 *P2=new Rus2 (true);
Rus3 *P3=new Rus3 (true);
Form1->Button2->Enabled=true;
Form1->Button3->Enabled=true;
Form1->Button4->Enabled=true;
P1->Resume();
P2->Resume();
P3->Resume();
Form1->PaintBox1->Canvas->Pen->Color = clBtnFace;
Form1->PaintBox1->Canvas->Brush->Color = clBtnFace;
Form1->PaintBox1->Canvas->Rectangle(0,0,800,500);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
P1->Suspend();
P2->Suspend();
P3->Suspend();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
P1->Resume();
P2->Resume();
P3->Resume();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
P1->Terminate();
P2->Terminate();
P3->Terminate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
if (Form1->CheckBox1->Checked)
{ Edit1->Text=" ";
Edit2->Text=" ";
Edit3->Text=" ";
Form1->Edit1->Enabled=true;
Form1->Edit2->Enabled=true;
Form1->Edit3->Enabled=true;
Form1->Repaint();
}
else
{Edit1->Text=300;
Edit2->Text=300;
Edit3->Text=300;
Form1->Edit1->Enabled=false;
Form1->Edit2->Enabled=false;
Form1->Edit3->Enabled=false;
}
}
//---------------------------------------------------------------------------


Потік 1:


//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include "Unit2.h"
#include "Unit1.h"
#pragma package(smart_init)
//void Ghost(void);
//---------------------------------------------------------------------------
__fastcall Rus1::Rus1(bool CreateSuspended)
: TThread(CreateSuspended)
{
// FreeOnTerminate=true;
}
//---------------------------------------------------------------------------
//void Ghost(void)
//--------
void __fastcall Rus1::Ghost1(void)
{
int dx1=1,prx1;
int dx2=1,prx2;
int X1=20,X2=60;
int Y1,Y2;
int f=25;int g=0;
for (int i=1;i<Form1->Edit3->Text;i++)
{
if (Form1->RadioButton2->Checked)
{Form1->PaintBox1->Canvas->Lock();
}
Form1->CGauge3->Progress=i;
Form1->PaintBox1->Canvas->Pen->Color = clGreen;
Form1->PaintBox1->Canvas->Brush->Color = clGreen;
Y1=(70*sin(i*0.07)+440);
Y2=(70*sin(i*0.

Завантажити цю роботу безкоштовно
Пролистати роботу: 1  2  3 



Інше на тему: Синхронізація доступу потоків до загального ресурсу

BR.com.ua © 1999-2017 | Реклама на сайті | Умови використання | Зворотній зв'язок