У меня есть приложение WindowsForms, которое я хотел бы использовать для выполнения асинхронной задачи. У меня есть несколько проблем:
Как вы справляетесь с ContinueWith, чтобы вы могли запустить продолжение в форме?
Что делать, если Форма может быть закрыта до завершения Задачи?
private void buttonGo_Click(object sender, EventArgs e)
{
val t = RunSomethingAsync().ContinueWith( p => { OnRunDone(); });
}
private void OnRunDone()
{
Invoke( p => { button.Enabled = true; });
}
- Является ли приведенный выше код правильным способом сделать это?
- Что происходит в приведенном выше коде, если Форма закрывается до завершения Задачи?
- Что если RunSomethingAsync генерирует необработанное исключение?