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