Ho solo un semplice sito Web vb.net che deve chiamare un Sub che esegue un'attività molto lunga che funziona con la sincronizzazione di alcune directory nel filesystem (dettagli non importante).Come effettuare una chiamata al metodo asincrono molto semplice in vb.net
Quando chiamo il metodo, alla fine scade sul sito Web in attesa del completamento della routine secondaria. Tuttavia, anche se il sito scade, la routine alla fine completa il suo compito e tutte le directory finiscono come dovrebbero.
Voglio solo impedire il timeout, quindi mi piacerebbe chiamare il Sub in modo asincrono. Non ho bisogno (o nemmeno voglio) e callback/conferma che è stato eseguito correttamente.
Quindi, come posso chiamare il mio metodo in modo asincrono all'interno di un sito Web utilizzando VB.net?
Se avete bisogno di qualche codice:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Call DoAsyncWork()
End Sub
Protected Sub DoAsyncWork()
Dim ID As String = ParentAccountID
Dim ParentDirectory As String = ConfigurationManager.AppSettings("AcctDataDirectory")
Dim account As New Account()
Dim accts As IEnumerable(Of Account) = account.GetAccounts(ID)
For Each f As String In My.Computer.FileSystem.GetFiles(ParentDirectory)
If f.EndsWith(".txt") Then
Dim LastSlashIndex As Integer = f.LastIndexOf("\")
Dim newFilePath As String = f.Insert(LastSlashIndex, "\Templates")
My.Computer.FileSystem.CopyFile(f, newFilePath)
End If
Next
For Each acct As Account In accts
If acct.ID <> ID Then
Dim ChildDirectory As String = ConfigurationManager.AppSettings("AcctDataDirectory") & acct.ID
If My.Computer.FileSystem.DirectoryExists(ChildDirectory) = False Then
IO.Directory.CreateDirectory(ChildDirectory)
End If
My.Computer.FileSystem.DeleteDirectory(ChildDirectory, FileIO.DeleteDirectoryOption.DeleteAllContents)
My.Computer.FileSystem.CopyDirectory(ParentDirectory, ChildDirectory, True)
Else
End If
Next
End Sub
AMORE !!! Grazie! – EdenMachine
Questo ha funzionato alla grande, caricando un file su un server web.Convalidare il file quindi inviarlo via email. Anche se l'utente chiude la pagina web/sito/browser, l'e-mail raggiunge comunque la sua destinazione. – htm11h