生活随笔
收集整理的這篇文章主要介紹了
WCF 第五章 控制并发调用的数量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當InstancingMode設置成Single時,WCF在宿主內創建一個單一的實 例,不考慮有多少客戶端被創建。當ConcurrencyMode設置成Multiple時,WCF為每個請求創建一個線程(取決于系統上限)以實現服務 方法的并行執行。為了減少這個,maxConcurrentCalls行為控制有多少個并發調用可以激活。
? 列表5.9 顯示了一個使用InstanceContextMode.Single和ConcurrencyMode.Multiple的服務行為。服務操作花費20秒完成。
?列表5.9 使用InstanceContextMode.Single和ConcurrencyMode.Multiple的行為的服務
| 02 | public interface IStockService |
| 04 | ????[OperationContract] |
| 05 | ????double GetPrice(string ticker); |
| 08 | [ServiceBehavior(InstanceContextMode= InstanceContextMode.Single, ConcurrencyMode=ConcurrencyMode.Multiple)] |
| 09 | public class StockService : IStockService |
| 13 | ????????Console.WriteLine("{0}:Created new instance of StockService on thread", DateTime.Now); |
| 15 | ????public double GetPrice(string ticker) |
| 17 | ????????Console.WriteLine("{0}: GetPrice called on thread {1}", DateTime.Now, Thread.CurrentThread.ManagedThreadId); |
| 18 | ????????Thread.Sleep(20000); |
? 列表5.10 顯示了服務的app.config文件。maxConcurrentCalls行為設置成5,意味著在同一時間不可以再激活多于5個調用。
列表5.10 使用maxConcurrentCalls控制并發
| 01 | <?xml version="1.0" encoding="utf-8" ?> |
| 03 | ????<system.serviceModel> |
| 06 | ????????????<serviceBehaviors> |
| 07 | ????????????????<behavior name="throttling"> |
| 08 | ??????????????????<serviceThrottling maxConcurrentCalls="5"/> |
| 09 | ????????????????</behavior> |
| 10 | ????????????</serviceBehaviors> |
| 13 | ????????????<service behaviorConfiguration="throttling" name="Services.StockService"> |
| 14 | ????????????????<endpoint address="" binding="basicHttpBinding" contract="Services.IStockService" /> |
| 16 | ????????????????????<baseAddresses> |
| 17 | ????????????????????????<add baseAddress="http://localhost:8000/stockservice" /> |
| 18 | ????????????????????</baseAddresses> |
| 19 | ????????????????</host> |
| 22 | ????</system.serviceModel> |
圖片5.7顯示了列表5.7中的客戶端(左邊)和服務端(右邊)輸出。在客戶端,注意當程序啟動時10次調用立即開始。在這10次調用中,5個結果 在20秒鐘后返回而剩下的5個結果在另外20秒鐘后返回。在服務端輸出,注意只有一個實例被創建。也要注意5次對GetPrice的調用立刻執行,每個都 在它們自己的線程里執行。當這5個線程結束后,線程被重用同時客戶端的順序請求被處理。
圖片5.7 控制并發調用數量的輸出結果
========
轉載自
作者:DanielWise
出處:http://www.cnblogs.com/danielWise/ ?
轉載于:https://www.cnblogs.com/llbofchina/archive/2011/06/30/2094056.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的WCF 第五章 控制并发调用的数量的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。