Esecuzione di codice VB/C# in modo asincrono tramite thread

' Il seguente snippet avvia un'attività tramite thread
dim trd as New System.Threading.Thread(sub() 
                                            ' inserire qui l'attività da svolgere
                                            ' in questo punto è possibile fare riferimento a proprietà e metodi come ad esempio form.GetDatabase()
                                            
                                            ' eventuali risultati possono essere condivisi con il form tramite variabili di sessione ASP.NET
                                            form.session("_Variabile")="Risultato: xxxx"

                                            ' N.B. NON è possibile assegnare valori a campi del form!
                                       End Sub)



trd.IsBackground = True
trd.Priority = Threading.ThreadPriority.Lowest ' La priorità può essere modificata
trd.Start() ' questo fa partire il task

form.session("_Thread1")=trd  ' L'oggetto thread deve essere condiviso in una variabile di sessione per poterne controllare lo stato in un altro evento

'*******************************************
' Il seguente codice può essere inserito in un altro evento (esempio un timer) per verificare lo stato del task e recuperare il risultato
dim trd as System.Threading.Thread=form.Session("_Thread1")
	
if not trd is nothing
     if trd.ThreadState = Threading.ThreadState.Stopped ' task concluso
          form.alert(form.session("_Variabile")) ' Il risultato è recuperato dalla variabile di sessione
     End If 
End if