我正在尝试 ExcelAsyncUtil.Observe 函数。我制作了以下代码,在 Excel 中显示了一个运行时钟。它工作正常,但我不确定我在做什么。两个问题:
- 我应该为observer.OnCompleted() 和observer.OnError() 添加功能吗?这些调用有什么作用?
- 我应该在 IDisposible 类中做什么?为什么会在那里?
这是我的示例代码:
[ExcelFunction]
public static object MyExcelTicker()
{
return ExcelAsyncUtil.Observe("MyExcelTicker", new object[] { }, TickerFunction());
}
public static ExcelObservableSource TickerFunction()
{
ExcelObservableSource source = new ExcelObservableSource(() => new TickerObservable());
return source;
}
public class TickerObservable : IExcelObservable
{
public IDisposable Subscribe(IExcelObserver observer)
{
var timer = new System.Timers.Timer();
timer.Interval = 1000;
timer.Elapsed += (s, e) => observer.OnNext(DateTime.Now.ToString());
timer.Start();
// What about observer.OnCompleted() and observer.OnError()?
return new TickerDisposable();
}
}
public class TickerDisposable : IDisposable
{
public void Dispose()
{
// What to do here?
}
}