Visual C++ (CLI) Threading

Ich benutze Visual C++ 2008 mit CLI. Ich habe ein Formular mit einem Textfeld und einem button, sobald ich den Knopf drücken, ich möchte den folgenden code für die Ausgabe wie folgt:

private:

System::Void button_Click(System::Object^  sender, System::EventArgs^  e) {
    Thread ^thr1 = gcnew Thread(gcnew ThreadStart(&Form1::calculate("t1")));
    Thread ^thr2 = gcnew Thread(gcnew ThreadStart(&Form1::calculate("t2")));
    thr1->Start();
    thr2->Start();
 }

void calculate(String^ val) {
    int j;
for(j=0; j<10; j++)
    _txt->AppendText(val  + Convert::ToString(j) + "\n");
}

Gewünschte Ausgabe:

t1 0
t2 0
t1 1
t2 1

etc...

Mein code oben funktioniert nicht. Die besagt, dass ich die Stellvertretung erfordert zwei Eingänge an der gcnew Thead Linie. Was mache ich falsch? Auch gibt es einen besseren Weg, dies zu erreichen?

Es ist nicht angemessen, um völlig verändern Sie Ihre Frage. Starten Sie eine neue ein, wenn nötig.
Obwohl die Frage könnte sich geändert haben, Antworten Sie ist immer noch richtig.
Ja...ich konnte nicht feststellen, dass die _txt->AppendText war immer noch da.
Ich sehe, dass Hans wieder zurück auf die ursprüngliche Frage. Aber das update hat _txt->Text = ... die auch gegen die .NET Beschränkung auf den GUI-Zugriff von anderen threads.

InformationsquelleAutor Mark Manickaraj | 2011-08-09

Schreibe einen Kommentar