MYSQLconnector + Timer = stockende form ? =(

Ich bin leider nicht der hellst , denn ich werde wiedermal aus der MSDNerklärung nicht schlau und ich hab auch mal nach anderen Erklärungen gesucht doch die sind genauso gut erklärt...

Kann einer von euch versuchen es mir zu erklären?
 
ahhh Verweis heißt das in 2008. Jetzt wird mir alles klar.
Unter 2003 hieß das ja noch Referenz.
Das heißt es immer noch, kommt nur drauf an, in welcher Sprache VS installiert ist
Deutsch: Verweis
Englisch: Reference
....

Ich bin leider nicht der hellst , denn ich werde wiedermal aus der MSDNerklärung nicht schlau und ich hab auch mal nach anderen Erklärungen gesucht doch die sind genauso gut erklärt...

Kann einer von euch versuchen es mir zu erklären?
Möglich, aber was? :confused:
 
Das Delegateverfahren muss ich ja anwenden weil ich ja aus einen Kreirten Thread auf eine Listbox zugreifen will aber ich versteh nicht die Erklärung von MSDN . Ich will ja eine Onlineliste aktuell halten und hatte mir überlegt das ich die die Online sind Eintrage und vor jedem Eintrag die Listbox leere damit diese nicht mehrmals vorkommen sondern auch wirklich nur einmal . Das Problem dabei ist ja das es soweit klappt nur die Form stockt . Dann hat man mir geraten einen Thread zu nutzen den ich angelegt habe und mit der Syntax befüllt habe. Das Problem was nun besteht ist das ich aus dem Thread bereich heraus immer noch der Listbox sagen muss leere dich und fülle dich mit den gelesen Daten . Also hat man mich dann auf Delegate verwiesen allerdings verstehe ich nicht das was in MSDN erklärt wird. Wie gesagt bin nicht der hellste ^^°
 
Also:

Wenn du von einem aneren Thread als dem, in dem das Control erstellt worden ist, auf ein Control zugreiffen willst, dann musst du dies, wie bereits gesagt, per Delegate machen.

Dein Delegate ist eigentlich ein Zeiger auf eine Methode. Dieser Zeiger wird eben als Delegate an die Invoke-Methode deiner Form übergeben, und diese führt die Methode, auf die der Delegate zeigt, dann aus.

Beispiel:

Code:
private void UpdateThread()
{
    this.Invoke(MethodToDelegate);
}

private void MethodToDelegate()
{
    this.tbxIrgendwas.Text = "";
}

So verständlich?
 
Das heisst also es ist nicht möglich das Delegate in der selben Sub die als neuer Thread geladen wird einzusetzen ? also müsste ich eine neue Funktion für die Anwendung des Delegates anlegen? Oder ist es doch möglich und ich hab es nur wiedermal falsch verstanden?
 
Ich weiß jetzt nicht genau, ob ich verstanden habe, was du meinst. Aber ich verstehe deine Frage so, dass du wissen willst, ob du eine neue Methode brauchst. Richtig?

Also:

In C# gibt es anonyme Methoden. Sieht zB so aus:

Code:
this.Invoke(delegate { tbxIrgendwas.Text = "Blubb"; });

Soweit ich weiß gibts das in VB nicht.

Eine Art erweiterte Form davon sind Lambda Ausdrücke. Bei dem bin ich mir allerdings sicher, dass VB das in der neuesten Version beherrscht.

Sieht zB so aus:

Code:
Me.Invoke(Function() Me.tbxIrgendwas.Text = "Blubb")
 
Ich schätze mal ich habe euch wieder falsch Verstanden denn

Dim instance As Control

instance.Invoke(Online.Items.Clear())

Ergibt nur nen Error der sagt dass der Ausdruck keinen Wert ergeben würde.
 
1.) Liegt dein Online.Items ja wohl nicht auf deinem instance-Objekt. Also ist ein Invoke darauf sinnlos.

Du musst die Form invoken, auf der dein Online-Control liegt.

2.) Du übergibst der Invoke-Methode direkt einen Methodenaufruf. Kann VB implicit method group conversion? Ich glaub nicht.

3.) Ich würde dir empfehlen, mal ein gutes Buch zu VB zu kaufen, in dem Multi-Threading behandelt wird. Das Thema ist ziemlich komplex. Wenn du also Anwendungen mit mehreren Threads schreiben willst, solltest du dich gleich richtig damit beschäftigen.
 

Neue Beiträge

Zurück