首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请问关于调度器的设计有关问题,怎么指派要执行的方法

2012-05-04 
请教关于调度器的设计问题,如何指派要执行的方法?关于调度器的设计,偶现在能想到的就是把不同需要的工作定

请教关于调度器的设计问题,如何指派要执行的方法?
关于调度器的设计,偶现在能想到的就是把不同需要的工作定义为相应的方法,然后根据 Working 的参数 type 来决定执行那一个方法,

C# code
public interface IWorkItem{    void Working(int type);}public class WorkItem : IWorkItem{    public void Working(type)    {        switch(type)        {            case 0:                Method0();                break;            case 1:                Method1();                break;            case 2:                Method2();                break;        }    }    public void Method0()    {    }    public void Method1()    {    }    public void Method2()    {    }}

现在的设想是,能不能在将 WorkItem 这个 IWorkItem 添加(或经过处理再重新添加)到 Queue 队例的同时,指派相当的方法,而不是根据 Working 的参数 type 来决定,如能,如何指派?

[解决办法]
public interface IWorkItem
{
void Working();
int arg;
}

[解决办法]
何苦把method放到workitem里面 
public interface IMethod
{
void Method();
}
public WorkItem
{
private IMethod _currentMethod;
public void Work()
{
_currentMethod.Method();
}
}

[解决办法]
C# code
var actions = new List<Action>();void AddAction(Action action){this.actions.Add(action);}...void Perform(){foreach(var action in actions){action();}}
[解决办法]
public delegate void deleMethod();
并将Method0-2定义在调度器类中,在将 WorkItem 添加到Queue<WorkItem>时,通过 new deleMethod(调度器类.Method0-2)指派。

方便又实用。

热点排行