У меня просто простой веб-сайт vb.net, которому нужно вызвать Sub, который выполняет очень длинную задачу, которая работает с синхронизацией некоторых каталогов в файловой системе (подробности не важны).
Когда я вызываю метод, он в конечном итоге истекает на веб-сайте, ожидая завершения подпрограммы. Однако, несмотря на то, что веб-сайт не работает, подпрограмма в конечном итоге завершает работу, и все каталоги заканчиваются так, как должны.
Я хочу просто запретить таймаут, поэтому я бы хотел просто вызвать Sub асинхронно. Мне не нужно (или даже хочу) и обратный вызов/подтверждение того, что он успешно выполнен.
Итак, как я могу назвать свой метод асинхронно внутри веб-сайта с помощью VB.net?
Если вам нужен какой-то код:
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