CLR Via C#中一个推荐的库Power Threading,通过了解功能很是强劲,主要是把异步编程的步骤给简化了。
以下是学习的过程推荐
http://wintellect.com/PowerThreading.aspx 下载
Wintellect_Power_Threading_Library_(October 26, 2010).zip,包中Power Threading Overview.pdf 这个是个详细的介绍,不过有的没有更新。
AsyncEnumerator |
|
WindowsForms |
展示了AsyncEnumerator的使用、取消、延时取消、丢弃处理结果 |
TcpServer |
异步方式实现TCP服务 APM和AsyncEnumerator两个方式都有 |
TcpClient |
同步、APM AsyncEnumerator几种方式实现TCP客户端的展示 |
PatternDemos |
展示了AsyncEnumerator各种用法 跟踪AsyncEnumerator.EnableDebugSupport(); 全部完成和单个完成 yield return 组丢弃ThrowOnMissingDiscardGroupDiscardGroup 取消 等待和超时 共享资源SyncGate 结果组合多个AsyncEnumerator |
MultipleOps |
AsyncEnumerator的SuspendCallbackResumeCallback委托的用法 |
AspWebService |
Web Service中使用异步 AsyncEnumerator<String[]>包括返回值
使用Web Service的方法,可以同步也可以异步 localhost.AsyncEnumeratorService w = new localhost.AsyncEnumeratorService(); string u = "http://localhost:2669/AspWebForm/Default.aspx"; var r = w.GetWebSiteDataLength(u); Console.WriteLine(r);
w.BeginGetWebSiteDataLength(u, result => { localhost.AsyncEnumeratorService svr = (localhost.AsyncEnumeratorService)result.AsyncState; var d= svr.EndGetWebSiteDataLength(result); Console.WriteLine(d); }, w);
|
AspWebForm |
Asp.net中使用异步操作 Page.AddOnPreRenderCompleteAsync |
AsyncEnumerator-Silverlight |
|
ImageGrab ImageGrab.Web |
AsyncEnumeratorSilverlight下的使用 |
Flickr Flickr.Web |
和flickr集成展示 |
|
|
APM Implementations |
展示实现APM的功能和性能问题 |
CmdArgParser LogicalProcessorInformation |
命令行处理、信息工具处理函数的演示 |
DeviceIO |
直接操作IO的演示 |
ReaderWriterGate ResourceLocks |
锁功能和性能的测试 |
这个库对APM的使用提供了很好的支持,在高性能的处理值得引入。
参考
Clr Via C# 25 26章