Thread erzeugen



  • Hallo,

    ich habe Probleme einen Thread für eine kontinuierliche Bildaufnahme zu erzeugen. In VS08 - C# habe ich die Bildaufnahme in einem eigenen Thread mit folgendem Code problemlos umsetzen können.

    new System.Threading.Thread(Bildaufnahme).Start();
    
    //Funktion die oben aufgerufen wird
    private void Bildaufnahme()
    {
     while (true)
     {
      if (stopLive == false)
      {
        Img = CAM_FG.GrabImage();
        Img.DispObj(Window);
        //DoGuiAccess Funktion aufrufen um Zugriff auf GUI-Elemente zu bekommen
        this.Invoke(new MethodInvoker(DoGuiAccess));
      }
     }
    }
    
    private void DoGuiAccess()
    {
      TS_B_StopLive.Enabled = false;
    }
    

    Soweit so gut...Nun möchte ich aber den Code in VS08-C++ umsetzen,da ich in einer C++ Assembly schreibe, aber alle bisherigen C++ Ansätze scheitern mit irgendwelchen Compilerfehlern, z.B. der folgende Ansatz:

    Thread^ Snap_Thread=gcnew Thread(gcnew ThreadStart(Bildaufnahme()));
    

    mit zugehörigem Compilerfehler:
    error C3364: 'System::Threading::ThreadStart' : invalid argument for delegate constructor; delegate target needs to be a pointer to a member function

    Ich hoffe jemand kann mir helfen den Thread-Code in C++ umzusetzen und bedanke mich schon mal im Voraus, viele Grüße

    Cain



  • Thread^ Snap_Thread = gcnew Thread( gcnew ThreadStart( this,&Form1::Bildaufnahme)); 
    Snap_Thread->Start();
    

    Gruß, Doug_HH



  • Vielen Dank für die Hilfe, nun klappt es!!
    Für den Invoke-Aufruf innerhalb der Funktion funktioniert das ganze dann analog.

    Viele Grüße
    Cain


Anmelden zum Antworten