@page "/"
<h1>Hello, world!</h1>
Welcome to your new app.
<div>
<label>Async void (@VoidCount)</label>
<select @onchange="@IncrementVoid">
<option>a</option>
<option>b</option>
<option>c</option>
</select>
</div>
<div>
<label>Async task (@TaskCount)</label>
<select @onchange="@IncrementTask">
<option>a</option>
<option>b</option>
<option>c</option>
</select>
</div>
@foreach (string message in Messages)
{
<div>
@message
</div>
}
@code {
private List<string> Messages {get;} = new List<string>();
private int TaskCount {get; set;}
private int VoidCount {get; set;}
private async Task IncrementTask()
{
AddMessage("Running IncrementTask");
await RunFakeTask();
AddMessage("Incrementing TaskCount");
TaskCount++;
}
private async void IncrementVoid()
{
AddMessage("Running IncrementVoid");
await RunFakeTask();
AddMessage("Incrementing VoidCount");
VoidCount++;
}
private void AddMessage(string message)
{
Messages.Add(message);
StateHasChanged();
}
private async Task RunFakeTask()
{
await Task.Delay(TimeSpan.FromSeconds(1));
}
}