salve a tutti
ho un servizio web che uso per sincronizzare i prodotti di un programma locale, il servizio accetta un dataset come parametro
esso ha anche diverse funzioni, per dire la percentuale di avanzamento e che tabella sta operando

attualmente il codice che mi permette di aggiornare la label di stato è questo:
tutto inserito in un controllo timer settato a due secondi:
codice:
  Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
     
            Application.DoEvents()
            LBL_Stato.BeginInvoke(New InvokeDelegate(AddressOf AggiornaStatoDaServizio))
            Dim demoThread As Thread = Nothing
            demoThread = New Thread(New ThreadStart(AddressOf AggiornaStatoDaServizio))
            demoThread.Start()


    End Sub
    Public Sub AggiornaStatoDaServizio()
      
        LBL_Stato.BeginInvoke(New InvokeDelegate(AddressOf invokeMethod))
        ProgressBar1.BeginInvoke(New InvokeDelegate(AddressOf invokeMethod))


        Me.ProgressBar1.Value = s.GetStatoUpload(FTPguid)
      
    End Sub 
    Private Sub invokeMethod()
      
        Me.LBL_Stato.Text = My.Resources._FRM_EsportazioneDati.Aggiornamentotabella & ObjExport.NomeTabella & My.Resources._FRM_EsportazioneDati.record & ObjExport.IndexArrivato & My.Resources._FRM_EsportazioneDati.di & ObjExport.NumRecordTabella


    End Sub
il problema è che sebbene l'operazione richieda tempo, mi da solo un aggiornamento di stato, sebbene toericamente ne dovreivedere una decina, il codice secondo voi è esatto?
forse perchè non ho molta confidenza con i delegate