Übergabe von Object in _beginthreadex()



  • Hallo,

    ich habe ein Problem. Ich möchte einen Thread beim Drücken auf einen Button innerhalb meiner GUI starten.
    Dieser Trhread führt eine Funktion ausserhalb der Klasse aus , die u.a. auf eine TextBox innerhalb meiner zugreifen und diesen aktualisieren soll.
    Somit muss ich die Adresse des TextBox-Objekts bei Aufruf des Threads übergeben. Leider bekomme ich es nicht hin, das Objekt zu übergeben.
    Folgender Code erläutert mein Problem:

    public ref class GUI_Klasse : public System::Windows::Forms::Form
    	{
    
    this->textBox1 = (gcnew System::Windows::Forms::TextBox());
    
    this->button1 = (gcnew System::Windows::Forms::Button());
    
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    		groupBox1->Enabled = false;
    		*pEAktiv = 1;
    
    		hThread_startThread = (HANDLE)_beginthreadex(NULL, 0, &start_funktion, (void*)&this->textBox1, 0, &threadID);
    
    	}
    
    }
    

    Bei (void*) erhalte ich die Meldung (Invalid type conversion), wenn ich das Objekt übergeben möchte. Das liegt vermutlich daran, dass es ein garbage-collected Object ist. Gibt es hier einen Workaround?

    Gruss

    Payon



  • Hallo,

    dein Beitrag gehört in das C++/CLI Unterforum. Und da du ja .NET verwendest, warum dann nicht auch gleich .NET-Threads bzw. noch besser Tasks?

    Und den als "wichtig" markierten Artikel im C++/CLI-Forum solltest du auch mal lesen 😉



  • Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Log in to reply