Laden...

Thread mit Parameter

Erstellt von userid4106 vor 15 Jahren Letzter Beitrag vor 15 Jahren 853 Views
U
userid4106 Themenstarter:in
457 Beiträge seit 2006
vor 15 Jahren
Thread mit Parameter

Hallo,
habe folgendes Problem. Ich spiele im Moment ein bisschen mit OpenCV/Emgu.net herum.Leider dauert die Auswertung der Pictures ja manchmal etwas lange.Und genau aus dem Grund möchte ich das auch dem Benutzer signalisieren und stehe vor einem kleinen Problem.Da das FaceDetecting ja dann gezwungendermaßen in einen Thread ausgelagert werden muss habe ich hier folgendes geschriebben;


                object[] Info = new object[3];
                Info[0] = Bild.FullName;
                Info[1] = Cascade;
                Info[2] = pictureBox1; //?????????

                Thread search = new Thread(new ParameterizedThreadStart(FaceDetect));
                search.Start(Info);

Das Problem liegt im 3Parameter im Array. Ich würde gerne der Funktion eine PictureBox mitgeben die Bereits schen existiert. Und zwar aus flogedem Grund:
ich habe eine Form und ein OpenFileDialog. Wählt man ein Bild aus so wird dieses Bild direkt in die Picturebox geladen. Quasi als Vorschau und anschließend hat der Benutzer die möglichkeit noch eine Cascade auszuwählen. Danach kann er einen Button drücken der dann quasi das aufruft was oben als Code steht.


        static void FaceDetect(object Informationen)
        {
            object[] data = (object[])Informationen;
            string Bild = data[0].ToString();
            string Cascade = data[1].ToString();
            PictureBox picboxid = (PictureBox)data[2];

Das hier oben ist dann der Anfang vom Thread. Auch hier liegt wieder das Augenmerk auf dem 3Parameter. Habs einfach mal nach zig Versuchen so übernommen. Aber ich weiß einfach nicht wie ich die PictureBox übergeben kann so das der Thread,wenn er mit seiner Arbeit fertig ist, die PictureBox mal eben aktualisieren kann.
Hat jemand eine Lösung?

Gelöschter Account
vor 15 Jahren

wo liegt das problem? der code sollte so wie er da steht funktionieren.

nebenbei solltest du nicht das control mitgeben, sondern eher mit events arbeiten -> thread fertig -> event feuern -> picturebox neuzeichnen.

U
userid4106 Themenstarter:in
457 Beiträge seit 2006
vor 15 Jahren

hey,du hast recht.das versteh ich aber jetzt nicht so recht.gerad hat es irgendwie nicht so funktioniert..hm...vielelicht habe ich was übersehen..hab zwischenzeitlich so viel geändert:-P aber danke

C
252 Beiträge seit 2007
vor 15 Jahren

Was für dich auch nützlich sein könnte: Threads mit mehreren Parametern
Somit musst du deine Paramter nicht in object-Array packen, sondern kannst gleich die Parameter übergeben und zudem auch noch typesafe.