, , ? .
, , - , - . , , await Task.Run, , Task.Delay:
public async Task WaitForReaderArrivalAsync()
{
while (!ReaderArrived())
{
await Task.Delay(1000).ConfigureAwait(false);
}
}
... - , - , ?
. WaitForReaderArrival await Task.Run WaitForReaderArrivalAsync().Wait(), . , "Async All the Way" :
async void Button_Click(object sender, EventArgs e)
{
await WaitForReaderArrivalAsync();
MessageBox.Show("ReaderArrived!");
}
. , ReaderArrived , async/await .
: -, DoEvents, , :
public void WaitForReaderArrival()
{
while (!ReaderArrived())
{
Application.DoEvents();
System.Threading.Thread.Sleep(100);
}
}
: .DoEvents.