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. .Net Remoting:序列化對象和實現
- 7. Laravel雄辯的活動 - 實現節省模式,如果更新
- 8. 通行證對象從一個活動實現Parcelable到另一個活動
- 9. 如何以通用形式實現NULL對象設計模式?
- 10. WCF實例模式和不活動Timeout
- 11. HL7對象模型的.NET
- 12. 實現頁面對象模型
- 13. VBA對象模塊必須實現〜?
- 14. 像.NET一樣在.NET中實現任務重複模式?
- 15. 在聚合對象上實現訪問者模式
- 16. 在.Net中實現多個接口和對象實例
- 17. 活動輪廓實現
- 18. StringTemplate的.NET動態對象
- 19. 如何實例化模式對象?
- 20. .NET樹型對象模型
- 21. 如何動態實現代理模式?
- 22. REST對象爲半動態.net對象
- 23. 在.NET中實現觀察者模式的類的名稱?
- 24. 如何實現與多個子對象的繼承.net
- 25. 單例模式的實現
- 26. 抽象活動實現中的奇怪行爲
- 27. 實現.NET 4.0的生產者 - 消費者模式
- 28. 是否有優化的.net設計模式實現?
- 29. 定義實現的抽象對象
- 30. WPF和活動對象
我假設你看到了該頁面的鏈接? http://blog.gurock.com/wp-content/uploads/2008/01/activeobjects.pdf – mjcopple 2011-02-09 14:07:24
學士論文非常有趣,但它不包含實現。 – 2011-02-09 14:12:41