C# 单击其他按钮时停止执行按钮单击
考虑下面两个按钮单击事件,我希望输出cancel\u click事件停止hellotest\u click事件并重定向C# 单击其他按钮时停止执行按钮单击,c#,asp.net,webforms,C#,Asp.net,Webforms,考虑下面两个按钮单击事件,我希望输出cancel\u click事件停止hellotest\u click事件并重定向 protected async void hellotest_click(object sender, EventArgs e) { await Task.Run(() => hello1()); await Task.Run(() => hello2()); } //if i
protected async void hellotest_click(object sender, EventArgs e)
{
await Task.Run(() => hello1());
await Task.Run(() => hello2());
}
//if i click another button , say
protected async void cancel_click(object sender, EventArgs e)
{
Response.Redirect(Request.Url.GetLeftPart(UriPartial.Authority) + "/trial/main.aspx", false);
Context.ApplicationInstance.CompleteRequest();
}
// i want the output cancel_click event to stop the process of hellotest_click event and redirect.
不幸的是,我认为这在一般情况下是不可能的。假设您的项目变得和SO一样大,并且您使用了一个由许多服务器组成的服务器场来处理用户。不同的点击可能很容易到达不同的服务器 我能想到的任何解决方案要么没有那么简单,要么无法正常工作,例如,如果用户有多个选项卡 也许你能做的最好的事情就是
- 介绍一些后台执行服务
- 介绍正在执行的任务的一些注册表
- 将新创建任务的ID立即返回到浏览器,然后 显示一些进度UI
- 每隔一段时间定期询问服务器任务的完成情况
- 当用户单击“取消”时,将任务的ID传递给服务器并 请求您的服务按ID停止执行该任务
- 介绍一些后台执行服务
- 介绍正在执行的任务的一些注册表
- 将新创建任务的ID立即返回到浏览器,然后 显示一些进度UI
- 每隔一段时间定期询问服务器任务的完成情况
- 当用户单击“取消”时,将任务的ID传递给服务器并 请求您的服务按ID停止执行该任务
不幸的是,我认为这在一般情况下是不可能的。假设您的项目变得和SO一样大,并且您使用了一个由许多服务器组成的服务器场来处理用户。不同的点击可能很容易到达不同的服务器 我能想到的任何解决方案要么没有那么简单,要么无法正常工作,例如,如果用户有多个选项卡 也许你能做的最好的事情就是