PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [VB .NET] Backgroundworker funzt nich?



Kaspersky
14.07.2009, 13:16
Hallo,

Ich möchte mit dem backgroundworker eine email verschicken doch es klappt nicht.
Wenn ich es mit einem timer mache funzt es aber mit einem backgroundworker nicht.


Eine Ausnahme (erste Chance) des Typs "System.Net.Mail.SmtpException" ist in System.dll aufgetreten.

Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement PictureBox1 erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde.
BackgroundWorker1.RunWorkerAsync()

Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
mySmtpsvr.Send(Msg)
End Sub
Greetz

inout
14.07.2009, 13:49
Hast du mal versucht CheckForIllegalCrossThreadCalls auf false zu setzen?
Ist zwar nicht gerade die schönste Lösung, aber es reicht für deine Vorhaben denke ich mal aus, oder?

Kaspersky
14.07.2009, 14:03
Danke jetzt geht das schonmal, aber nicht im loop.
Wie setzt ich das am besten um das der backgroundworker im loop läuft?

inout
14.07.2009, 14:25
Danke jetzt geht das schonmal, aber nicht im loop.
Wie setzt ich das am besten um das der backgroundworker im loop läuft?
Im Loop? while(true){...}, for(;;){...} oder was?
Naja sollte doch kein Problem sein?

Ansonsten musst Du dein Problem ein wenig genauer beschreiben.

DarkFire
14.07.2009, 14:30
Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
If blabla = True Then
BackgroundWorker1.RunWorkerAsync()
End If
End Sub

Kaspersky
14.07.2009, 14:41
Jap bin selbst drauf gekommen, trotzdem thx

hackerking
15.07.2009, 17:11
Das ist unsauber...
Benutzt Delegate Subs...
Dann brauchste auch nicht den BackgroundWorker, und auch nicht CheckForIllegalCrossThreads.
Ausserdem funktioniert soweit ich weiß der BGWorker nicht wenn er auf einen andere Form, aus einem anderen Thread zugreifen will. Bei mir klappt das zumindest nicht...