日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WCF 第五章 控制并发调用的数量

發(fā)布時間:2025/4/5 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WCF 第五章 控制并发调用的数量 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

當InstancingMode設置成Single時,WCF在宿主內創(chuàng)建一個單一的實 例,不考慮有多少客戶端被創(chuàng)建。當ConcurrencyMode設置成Multiple時,WCF為每個請求創(chuàng)建一個線程(取決于系統(tǒng)上限)以實現(xiàn)服務 方法的并行執(zhí)行。為了減少這個,maxConcurrentCalls行為控制有多少個并發(fā)調用可以激活。

? 列表5.9 顯示了一個使用InstanceContextMode.Single和ConcurrencyMode.Multiple的服務行為。服務操作花費20秒完成。

?列表5.9 使用InstanceContextMode.Single和ConcurrencyMode.Multiple的行為的服務

01[ServiceContract]
02public interface IStockService
03{
04????[OperationContract]
05????double GetPrice(string ticker);
06}
07?
08[ServiceBehavior(InstanceContextMode= InstanceContextMode.Single, ConcurrencyMode=ConcurrencyMode.Multiple)]
09public class StockService : IStockService
10{
11????StockService()
12????{
13????????Console.WriteLine("{0}:Created new instance of StockService on thread", DateTime.Now);
14????}
15????public double GetPrice(string ticker)
16????{
17????????Console.WriteLine("{0}: GetPrice called on thread {1}", DateTime.Now, Thread.CurrentThread.ManagedThreadId);
18????????Thread.Sleep(20000);
19????????return 94.85;
20????}
21}

? 列表5.10 顯示了服務的app.config文件。maxConcurrentCalls行為設置成5,意味著在同一時間不可以再激活多于5個調用。

列表5.10 使用maxConcurrentCalls控制并發(fā)

01<?xml version="1.0" encoding="utf-8" ?>
02<configuration>
03????<system.serviceModel>
04????????<bindings />
05????????<behaviors>
06????????????<serviceBehaviors>
07????????????????<behavior name="throttling">
08??????????????????<serviceThrottling maxConcurrentCalls="5"/>
09????????????????</behavior>
10????????????</serviceBehaviors>
11????????</behaviors>
12????????<services>
13????????????<service behaviorConfiguration="throttling" name="Services.StockService">
14????????????????<endpoint address="" binding="basicHttpBinding" contract="Services.IStockService" />
15????????????????<host>
16????????????????????<baseAddresses>
17????????????????????????<add baseAddress="http://localhost:8000/stockservice" />
18????????????????????</baseAddresses>
19????????????????</host>
20????????????</service>
21????????</services>
22????</system.serviceModel>
23</configuration>

圖片5.7顯示了列表5.7中的客戶端(左邊)和服務端(右邊)輸出。在客戶端,注意當程序啟動時10次調用立即開始。在這10次調用中,5個結果 在20秒鐘后返回而剩下的5個結果在另外20秒鐘后返回。在服務端輸出,注意只有一個實例被創(chuàng)建。也要注意5次對GetPrice的調用立刻執(zhí)行,每個都 在它們自己的線程里執(zhí)行。當這5個線程結束后,線程被重用同時客戶端的順序請求被處理。

圖片5.7 控制并發(fā)調用數(shù)量的輸出結果


========

轉載自

作者:DanielWise
出處:http://www.cnblogs.com/danielWise/ ?

轉載于:https://www.cnblogs.com/llbofchina/archive/2011/06/30/2094056.html

《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的WCF 第五章 控制并发调用的数量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。