Ok risolto una parte , ora il multithreading funziona , ora però vorrei cercare di risolvere un problema legato al cross threading (mado tutto in un giorno ho imparato )

Nuovo codice
codice:
Private Sub SmsPanel_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Codice non rilevante ....
    End Sub

    Private Sub ConnettiToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ConnettiToolStripMenuItem.Click
        BackgroundWorker1.RunWorkerAsync()
    End Sub


    Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
        Dim Comando As OleDbCommand = New OleDbCommand()
        Dim Comando_Server As OleDbCommand = New OleDbCommand()
        Dim ServerAdapter As New OleDbDataAdapter
        Dim Adapter As New OleDbDataAdapter
        Dim ANUMBER As String
        Dim ServerReader As System.Data.OleDb.OleDbDataReader
        Dim ContaRighe As Integer


        Comando_Server.Connection = Connessione_server
        Comando_Server.CommandText = "SELECT * FROM INBOX"
        ServerAdapter.SelectCommand = Comando_Server
        Connessione_server.Open()
        ServerReader = Comando_Server.ExecuteReader()
        While ServerReader.Read
            ANUMBER = ServerReader("ANUMBER")
            Comando.Connection = Connessione
            Comando.CommandText = "SELECT * FROM numeri INNER JOIN email ON email.id_email = numeri.idemail WHERE numero = @ANUMBER"
            Comando.Parameters.AddWithValue("@ANUMBER", ANUMBER)
            'Apriamo la connessione
            Connessione.Open()
            'Eseguiamo e vediamo se esiste una corrispondenza !
            Try
                ContaRighe = Comando.ExecuteScalar()
            Catch Eccezione As OleDb.OleDbException
                MessageBox.Show(Eccezione.Message)
            End Try
            'Se esiste blocchiamo l'aggiunta 
            If ContaRighe = 1 Then
                MessageBox.Show(Now() & "Trovato")
            Else
                MessageBox.Show(Now() &  "Non trovato")
            End If
            Connessione.Close()
        End While
        Connessione_server.Close()
    End Sub

End Class
Infatti al posto dei messagebox.show in DOWORK(nel ciclo if else) dovrebbero esserci dei flussi di scrittura in un eventuale file di Log ... ma se lo faccio mi solleva un eccezione di Crossthreading

mi sono documentato e bisogna usare l'evento ProgressChanged di Backgroundworker ... ma solo che non accetta valori in stringa o sbaglio?? ci sono altre soluzioni?