bool stope=false;void btnCancle_Click(object sender, EventArgs e)
{
if(!stope)
业务1
if(!stope)
业务2
……..
if(!stope)
业务N
}
{
if(!stope)
业务1
if(!stope)
业务2
……..
if(!stope)
业务N
}
解决方案 »
- 求助如何正则匹配以下的HTML的数据按表格里的分值从大到小排序
- 想用C#写一个IE三维显示插件,不知道从何下手?请高人指点!!!!
- 有谁会做这样的控件?高分请救!一个项目就被这给困住了!
- 应该怎么学C#.Net
- 什么是钩子?
- 新手请教,谢谢,来深圳请你们喝酒!
- 如何使用 C#来查询Access数据库中有那些数据表???
- dsoframer.ocx如何实现多个打印时不要多次弹出打印设置页
- 怎样通过控件数组的Tag,对确定哪个控件产生双击事件
- new StreamWriter(@"c:\123.bmp",false,Encoding.Default,12345);最后一个参数buffersize设置多大好,一般stream此类的buffer设置多大
- datagridview 如何添加自定义控件呢
- listview 问题 bug?
for(int i=0;i<n;i++)
{
switch(i)
{
case 0:
//执行业务1
break;
case 1:
//执行业务2
break;
}
if(stop)
{
break;
}
}
再定义一个业务管理类在执行这些接口,最终这个管理类通过Foreach来顺序执行这些业务,每次Foreach都判断下if(IsCancel) break;
这样也有利于之后的业务扩展吧?简单来说就是这样:public interface ITask
{
void exec();
}
public class BusinessTask : ITask
{
public void exec()
{
// 执行业务
}
}
public class BusinessManager
{
public bool IsCancel
{
get;
set;
}
public void RunTask(ITask[] tasks)
{
if (tasks != null)
{
foreach (ITask task in tasks)
{
if (IsCancel)
break;
task.exec();
}
}
}
}
bm.RunTask(new BusinessTask[] { new BusinessTask(), new BusinessTask() });
Thread.Sleep(1000);// 假设这里是用多线程执行任务。
bm.IsCancel = true;