我有这样的方法:
private async void BtnGivePermit_Click(object sender, EventArgs e)
{
//some code here
}
[我正在尝试将一个按钮添加到“取消”,我想在那儿检查是否没有其他任何单击事件。如何在C#中做到这一点?
按照Ash的建议,您可能希望像这样使用布尔值:
bool isGivePermitProcessing = false;
private void BtnGivePermit_Click(object sender, EventArgs e)
{
isGivePermitProcessing = true;
try {
...
} finally {
isGivePermitProcessing = false;
}
}
这将使您对函数是否正在处理有明确的了解。
try-finally
块确保没有异常会导致isGivePermitProcessing
布尔值无限期变为true。
将上述概念扩展到Jimi的建议中,您也可以像这样简单地禁用按钮:
private void BtnGivePermit_Click(object sender, EventArgs e)
{
BtnGivePermit.Enabled = false;
try {
...
} finally {
BtnGivePermit.Enabled = true;
}
}
这还将使您对功能是否正在处理有一定的了解,同时还可以防止在已经处理上一次单击时单击按钮。
如果您打算为异步操作设置一个取消按钮,则可能要研究CancellationToken
类型。