如何在我的类中声明一个可以传递异步函数的函数?
public class ScrollManager
{
private SomeClassEvents events; // тут хранятся события
public doWork()
{
events.call(someData); // вызываю событие
}
public OnSelect(Delegate onSelectFun)
{
events.add(onSelectFun); // добавляю слушатель событий
}
}
我像这样使用这个类:
ScrollManager scrollManager = new ScrollManager();
scrollManager.OnSelect(async () =>
{
await someFunc();
});
据我了解,您正在寻找一种异步调用一堆事件处理程序的方法。关键字负责在 C# 中实现发布者/订阅者设计模式
event
,其引擎是委托。委托有一个内置的处理程序列表,我建议使用它。最适合您的任务的委托类型是Func<Task>
.例如,您可以实现扩展方法。
这就是你可以使用它的方式
控制台输出
我之前在Code Review上发布了一个带有参数的代码版本,例如经典事件。