1. Акция на весь декабрь! Получай оплату х2 за уникальные статьи, объемом от 200 слов, если в заголовке темы и теле статьи присутствует слово Python
    Скрыть объявление

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

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем -, 16 окт 2011.

  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);




    }
     
Загрузка...

Поделиться этой страницей