Buffer an Thread übergeben?



  • So,

    nachdem ich das BCB-Tutorial zum Thema Threads erfolgreich durchgearbeitet habe, stehe ich vor dem nächsten Problem:

    In meinem MainForm wird eine Ereignis-Behandlungs-Routine abgearbeitet, sobald das Prog Daten empfängt. In besagter Routine wird ein Thread gestartet, welcher dann die Datenverarbeitung übernehmen soll. Die Daten werden automatisch (nicht von meinem Prog gesteuert) in einen Buffer geschrieben, auf den ich in der Routine Zugriff habe. (1) Wie übergebe ich den Buffer aus

    ...::...DataAvailable(TIdTelnet *Sender, const AnsiString Buffer)
    

    an die Routine im Thread:

    TThread::Execute();
    

    ?

    Ich möchte keine fertigen Lösungen - nur Denkanstöße, Tips, Links etc. - Ich weiß oft einfach noch nicht, wonach ich suchen soll.

    MfG



  • wie wäre es wenn Du eine von TThread abgeleitete Klasse erzeugst. Dieser Klasse fügst Du ebenfalls Buffer hinzu. Dann überschreibst Du den Konstruktor von TThread und fügst dem neuen Konstruktor einen Parameter Buffer hinzu in dem du Buffer übergeben kannst.

    also neue Unit anlegen und in der H- Datei:

    class TMyThread: public TThread
    {            
    private:
    protected:
            void __fastcall Execute();
    public:
            __fastcall TMyThread(bool CreateSuspended, AnsiString Buffer);
    
           AnsiString buff;
    
    };
    

    Und in der CPP- Datei:

    __fastcall TMyThread::TMyThread(bool CreateSuspended, AnsiString Buffer)
            : TThread(CreateSuspended)
    {
     buff = Buffer;
    }
    //---------------------------------------------------------------------------
    void __fastcall TMyThread::Execute()
    {
    
    }
    

    Mfg Mav



  • Super,

    Dankeschön. 👍

    MfG


Anmelden zum Antworten