假鼻子
会员
- 已加入
- 2019年9月19日
- 留言内容
- 10
- 编程经验
- Beginner
嘿大家
我使用下面的代码查找抽象基类的所有子类,然后实例化每个子类并将该实例添加到列表中。
我想做的是遍历该实例列表并每秒运行一个实例,该实例是每个实例的抽象基类的一部分,但是我只想在前一个任务运行第二个时运行该任务前完成。我已经看到其他人使用Func做类似的事情<Task>但我不知道他们是如何实现的。
这是可以做的事情吗,如果可以,我应该怎么做?
先感谢您!!
我使用下面的代码查找抽象基类的所有子类,然后实例化每个子类并将该实例添加到列表中。
我想做的是遍历该实例列表并每秒运行一个实例,该实例是每个实例的抽象基类的一部分,但是我只想在前一个任务运行第二个时运行该任务前完成。我已经看到其他人使用Func做类似的事情<Task>但我不知道他们是如何实现的。
这是可以做的事情吗,如果可以,我应该怎么做?
先感谢您!!
C#:
public static List<ConsumableBase> Instances = new List<ConsumableBase>();
public static async void Manage()
{
IEnumerable<Type> _classes = GetChildrenOfType(typeof(ConsumableBase));
foreach (Type _class in _classes)
{
ConsumableBase _obj = (ConsumableBase) InstantiateType(_class);
Instances.Add(_obj);
}
}
private static IEnumerable<Type> GetChildrenOfType(Type _type)
{
var _classes = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(s => s.GetTypes())
.Where(p => _type.IsAssignableFrom(p));
return _classes;
}
private static object InstantiateType(Type _type)
{
var _ctors = _type.GetConstructors(BindingFlags.Public);
var _inst = _ctors[0].Invoke(new object[] { });
return _inst;
}