0
這是我的服務:如何將一項操作更改爲ConcurrencyMode = single?
InstanceContextMode = InstanceContextMode.Single,
ConcurrencyMode = ConcurrencyMode.Multiple
我有通過在服務計算機搜索的東西返回一個ID的方法。此方法不能像ConcurrencyMode.Multiple一樣行事。我該怎麼辦?
但什麼heppends到aother客戶端不能獲得該鎖鎖定?他們是否等到第一個完成? – 2012-07-14 16:17:20
甚至在方法上放上['[MethodImpl(MethodImplOptions.Synchronized)]'](http://stackoverflow.com/questions/2223656/what-does-methodimploptions-synchronized-do),那麼你永遠不會意外地出去鎖。 – Jeroen 2012-07-14 16:17:49
[MethodImpl(MethodImplOptions.Synchronized)]是不好的做法,應該避免,因爲如果有人鎖定服務對象,它很容易導致死鎖。這個屬性本質上是整個方法的一個鎖(this)。請參閱MSDN文檔頁面上的註釋:http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.methodimploptions.aspx – 2012-07-14 16:30:44