Rare/onbekende error tijdens debuggen

Status
Niet open voor verdere reacties.

Luuknl

Terugkerende gebruiker
Lid geworden
29 jan 2010
Berichten
1.193
Hallo allen,

Ik ben een programma aan 't maken die de eerste keer wat moet downloaden. Maar nu loop ik tegen een probleem aan.
Dit is de code:
PHP:
Public Class DownloadForm

    Private Sub Download_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        BW1.RunWorkerAsync()
    End Sub

    Private Sub BW1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BW1.DoWork
        CheckForIllegalCrossThreadCalls = False
        If My.Computer.FileSystem.DirectoryExists("hier een pad") Then
            PlayForm.Show()
            Me.Close()
        Else
            MsgBox("hi")
            My.Computer.Network.DownloadFile("Hier een url", "hier een systeem pad")
            ProgressBar1.Value = 100
            My.Computer.Network.DownloadFile("Hier een url", "hier een systeem pad")
            ProgressBar2.Value = 100
            PlayForm.Show()
            Me.Close()
        End If
    End Sub
End Class

Maar nu krijg ik bij (maakt niet uit welke van de twee): PlayForm.Show() de volgende error:
Code:
{"Er is een fout opgetreden bij het maken van het formulier. Zie ExceptionInnerException voor details. De fout is: Kan geen exemplaar maken van ActiveX-besturingselement 6bf52a52-394a-11d3-b153-00c04f79faa6, omdat de huidige thread zich niet in een apartment met één thread bevindt."}

Ik kan nou niet zeggen dat ik daar bepaalt wijzer uit word dus mijn vraag of jullie weten wat het betekent en misschien ook hoe ik het kan oplossen. Het gaat trouwens over Visual Basic.

Groet,
Luuk
 
Uit de fout code kon ik afleiden dat je een Active-X element in je PlayForm hebt en dit element zou wel eens een mediaplayer kunnen zijn.

Het verteld ons ook dat het in een apartment state van 1 thread moet zijn dit kan je doen door het toe te voegen aan de attributen.
Code:
Code:
Public Class DownloadForm
 
    Private Sub Download_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        BW1.RunWorkerAsync()
    End Sub
 
    <STAThread()>
    Private Sub BW1_DoWork(sender As System.Object, e As System.ComponentModel.DoWorkEventArgs) Handles BW1.DoWork
        CheckForIllegalCrossThreadCalls = False
        If My.Computer.FileSystem.DirectoryExists("hier een pad") Then
            PlayForm.Show()
            Me.Close()
        Else
            MsgBox("hi")
            My.Computer.Network.DownloadFile("Hier een url", "hier een systeem pad")
            ProgressBar1.Value = 100
            My.Computer.Network.DownloadFile("Hier een url", "hier een systeem pad")
            ProgressBar2.Value = 100
            PlayForm.Show()
            Me.Close()
        End If
    End Sub
End Class

Veel succes!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan