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?
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
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.