• Paranoid - курс по анонимности и безопасности в сети от команды codeby. Защита персональных данных, анонимность в сети интернет, настройка виртуальных машин, безопасная передача данных, анти форензика и еще много всего полезного. Подробнее ...

Копирование Массива Из Одного Потока В Другой

  • Автор темы Guest
  • Дата начала
G

Guest

#1
Написал очень кривую программу, помогите поправить, поскольку прогать только начинаю, что она делает: во втором потоке формируется массив с, его элементы пишутся в массив а с умножением на 10, этот массив должен копироваться в s массив при помощи критических секций, где потом я его буду обрабатывать и выводить в файлик, скопировать вообще не получилось , помогите разобраться. Я еще не понял по общей структуре программы, как будет грамотнее: у меня данные сыпятся по ком порту, я должен из этих данных найти кадр по признаками и отправить на обработку и вывести в окошки на формы информацию, как лучше все это сделать?
cpp1
C++:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit2.h"
#include "Unit1.h"
#pragma package(smart_init)
#include<iostream>
#include<stdio.h>
#include <string.h>
//---------------------------------------------------------------------------



__fastcall TMyThread::TMyThread(bool CreateSuspended)
: TThread(CreateSuspended)
{
}
//---------------------------------------------------------------------------
void __fastcall TMyThread::Execute()
{
for (int i=0;i<1000;i++)

{ c[i]=i;
}


for (int i=0;i<1000;i++)

{
EnterCriticalSection(&Form1->CS);
a[i]=c[i*10];

LeaveCriticalSection(&Form1->CS) ;
Sleep(1000);

}



}
h2
C++:
#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#include <Classes.hpp>
//---------------------------------------------------------------------------
class TMyThread : public TThread
{
private:
protected:
void __fastcall Execute();


public:
__fastcall TMyThread(bool CreateSuspended);


char a[1000];
char c[1000];
};
//---------------------------------------------------------------------------
#endif
cpp1
C++:
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
#include<iostream>
#include<stdio.h>
#include <string.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TMyThread *Thr;
char s[1000];


//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)

{	Thr=new TMyThread(false);
FILE *out=fopen("gggg.txt","w");
InitializeCriticalSection(&CS);
for (int i=0;i<1000;i++)
{ EnterCriticalSection(&Form1->CS);
// s[i]=Thr->a ;
LeaveCriticalSection(&Form1->CS) ;
fprintf(out,"%d",s[i]);
}
fclose(out);




}