Wie man einen sehr einfachen asynchronen Methodenaufruf in vb.net durchführt
Ich habe nur eine einfache vb.net-Website, die ein Sub aufrufen muss, das eine sehr lange Aufgabe ausführt, die mit dem Synchronisieren einiger Verzeichnisse im Dateisystem arbeitet (Details nicht wichtig).
Wenn ich die Methode aufrufe, tritt auf der Website eine Zeitüberschreitung auf, die darauf wartet, dass die Unterroutine abgeschlossen ist. Obwohl die Website eine Zeitüberschreitung aufweist, ist die Routine schließlich abgeschlossen, und alle Verzeichnisse enden so, wie sie sollten.
Ich möchte nur die Zeitüberschreitung verhindern, also möchte ich den Sub einfach asynchron aufrufen. Ich brauche (oder will) nicht und Rückruf / Bestätigung, dass es erfolgreich lief.
Wie kann ich meine Methode mithilfe von VB.net innerhalb einer Website asynchron aufrufen?
Wenn Sie Code benötigen:
<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>