在 C# 中,我有一个执行可能需要很长时间的操作的类层次结构。出于这个原因,我实现了一个解耦/回调机制,所以调用者不会被阻塞,而是通过回调接口通知一个动作的完成。这看起来像这样:
protected delegate void ActionDelegate();
public void doAction()
{
Task.Factory.StartNew(() => DoActionASync());
}
private void DoActionASync()
{
DoActionImpl();
Caller->ActionDone(); // Caller is registered separately, and implements an interface (ICallback) that includes this function
}
protected abstract void DoActionImpl(); // Derived classes implement this
这是相当多的重复代码,每种方法都有细微的差异(签名)。我的问题是这是否是解决此问题的正确方法,或者 .NET/C# 是否提供任何可以使这更容易/更简洁的构造?