Как и предполагал A sh, вам может потребоваться логическое значение, подобное этому:
bool isGivePermitProcessing = false;
private void BtnGivePermit_Click(object sender, EventArgs e)
{
isGivePermitProcessing = true;
try {
...
} finally {
isGivePermitProcessing = false;
}
}
Это даст вам определенное представление о том, обрабатывает ли функция в настоящее время или нет.
Блок try-finally
гарантирует, что ни одно исключение не приведет к тому, что логическое значение isGivePermitProcessing
станет неопределенно истинным.
Расширяя вышеупомянутое понятие в предложении Джими, вы также можете просто отключить кнопку следующим образом:
private void BtnGivePermit_Click(object sender, EventArgs e)
{
BtnGivePermit.Enabled = false;
try {
...
} finally {
BtnGivePermit.Enabled = true;
}
}
Это также даст вам определенное представление о том, обрабатывает ли функция в настоящее время или нет, при этом дополнительно предотвращая нажатие кнопки во время обработки предыдущего щелчка.
Если вы собираетесь сделать кнопку отмены для асинхронных операций, вам может понадобиться тип CancellationToken
.