mirror of https://github.com/icsharpcode/ILSpy.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.5 KiB
47 lines
1.5 KiB
Imports System |
|
Imports System.IO |
|
|
|
Module Program |
|
' Sample taken verbatim from https://www.dotnetperls.com/async-vbnet |
|
Sub Main(args As String()) |
|
Dim task = New Task(AddressOf ProcessDataAsync) |
|
' Start and wait for task to end. |
|
task.Start() |
|
task.Wait() |
|
Console.ReadLine() |
|
End Sub |
|
|
|
Async Sub ProcessDataAsync() |
|
' Create a task Of Integer. |
|
' ... Use HandleFileAsync method with a large file. |
|
Dim task As Task(Of Integer) = HandleFileAsync("C:\enable1.txt") |
|
' This statement runs while HandleFileAsync executes. |
|
Console.WriteLine("Please wait, processing") |
|
' Use await to wait for task to complete. |
|
Dim result As Integer = Await task |
|
Console.WriteLine("Count: " + result.ToString()) |
|
End Sub |
|
|
|
Async Function HandleFileAsync(ByVal file As String) As Task(Of Integer) |
|
Console.WriteLine("HandleFile enter") |
|
|
|
' Open the file. |
|
Dim count As Integer = 0 |
|
Using reader As StreamReader = New StreamReader(file) |
|
Dim value As String = Await reader.ReadToEndAsync() |
|
count += value.Length |
|
|
|
' Do a slow computation on the file. |
|
For i = 0 To 10000 Step 1 |
|
Dim x = value.GetHashCode() |
|
If x = 0 Then |
|
count -= 1 |
|
End If |
|
|
|
Next |
|
End Using |
|
|
|
Console.WriteLine("HandleFile exit") |
|
Return count |
|
End Function |
|
End Module
|
|
|