3
A
回答
2
0
我没有看过代码,但这似乎是活动对象模式的实现。
http://www.codeproject.com/KB/architecture/LongRunningActiveObject.aspx
0
添加到安东Tykhyy的答案,对于.NET 3.5可作为的Reactive Extensions的一部分的System.Threading.Tasks.Task的版本。请注意,此版本没有Microsoft的官方支持。
2
使用System.Threading.Tasks.Task
class ActiveObject : IDisposable
{
private Task _lastTask = Task.Factory.StartNew(() => { });
public void Dispose()
{
if (_lastTask == null)
return;
_lastTask.Wait();
_lastTask = null;
}
public void InvokeAsync(Action action)
{
if (_lastTask == null)
throw new ObjectDisposedException(GetType().FullName);
_lastTask = _lastTask.ContinueWith(t => action());
}
}
InvokeAsync
简单的实现不是线程安全的,使用lock (_lastTask) lastTask = ...;
如果你需要它。
相关问题
- 1. akka:使用akka类型来实现活动对象模式
- 2. 方式来实现空对象模式
- 3. 数据访问对象模式实现
- 4. 活动记录模式 - 使用非实体对象
- 5. “现实生活”中的战略模式
- 6. 活动外观模型的实现
- 7. .Net Remoting:序列化对象和实现
- 8. 动态实现对象
- 9. 如何实现以下启动活动意向模式
- 10. 实现对象实例模型到PropertyGrid
- 11. Laravel雄辩的活动 - 实现节省模式,如果更新
- 12. 通行证对象从一个活动实现Parcelable到另一个活动
- 13. 在golang中实现活动模板
- 14. 对象模型的实现布局
- 15. 如何以通用形式实现NULL对象设计模式?
- 16. 活动对象图案建模建模为单个对象
- 17. 在Spring bean的实现空对象设计模式
- 18. HL7对象模型的.NET
- 19. WCF实例模式和不活动Timeout
- 20. VBA对象模块必须实现〜?
- 21. 实现页面对象模型
- 22. Python Appium实现页面对象模型
- 23. 像.NET一样在.NET中实现任务重复模式?
- 24. 抽象设计模式实现
- 25. PHP抽象工厂模式实现
- 26. 在.NET MVC中实现活动成员资格的验证
- 27. 活动的启动模式
- 28. 在.Net中实现多个接口和对象实例
- 29. 在聚合对象上实现访问者模式
- 30. StringTemplate的.NET动态对象
我假设你看到了该页面的链接? http://blog.gurock.com/wp-content/uploads/2008/01/activeobjects.pdf – mjcopple 2011-02-09 14:07:24
学士论文非常有趣,但它不包含实现。 – 2011-02-09 14:12:41