Cómo hacer una llamada a un método asíncrono muy simple en vb.net

Solo tengo un sitio web vb.net simple que necesito llamar a un Sub que realiza una tarea muy larga que funciona sincronizando algunos directorios en el sistema de archivos (los detalles no son importantes).

Cuando llamo al método, finalmente se agota el tiempo de espera en el sitio web a la espera de que se complete la rutina secundaria. Sin embargo, a pesar de que el sitio web se agota, la rutina eventualmente completa su tarea y todos los directorios terminan como deberían.

Quiero simplemente evitar el tiempo de espera, así que me gustaría llamar al Sub asincrónicamente. No necesito (o incluso quiero) y devolución de llamada / confirmación de que se ejecutó correctamente.

Entonces, ¿cómo puedo llamar a mi método de forma asíncrona dentro de un sitio web utilizando VB.net?

Si necesitas algún código:

<code>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
</code>

Respuestas a la pregunta(3)

Su respuesta a la pregunta