मेरे पास निम्न कोड है जिसे एक ही सेकंड में एकाधिक वेब-अनुरोधों के माध्यम से बुलाया जा सकता है। इस प्रकार, मैं डेटाबेस को मारने वाला दूसरा + अनुरोध नहीं चाहता, लेकिन पहले तक इंतजार कर रहा हूं।क्या इस सी # कोड को आलसी <T> कक्षा का उपयोग करने के लिए दोबारा उपयोग किया जाना चाहिए?
क्या मुझे इसके बजाय Lazy<T>
कीवर्ड
कक्षा का उपयोग करने के लिए इसे पुन: सक्रिय करना चाहिए? यदि कोड के Lazy<T>
कोड के 10 कॉल एक ही समय में होते हैं, तो उनमें से 9 कॉल करने वाले पहले व्यक्ति को पूरा करने की प्रतीक्षा करें?
public class ThemeService : IThemeService
{
private static readonly object SyncLock = new object();
private static IList<Theme> _themes;
private readonly IRepository<Theme> _themeRepository;
<snip snip snip>
#region Implementation of IThemeService
public IList<Theme> Find()
{
if (_themes == null)
{
lock (SyncLock)
{
if (_themes == null)
{
// Load all the themes from the Db.
_themes = _themeRepository.Find().ToList();
}
}
}
return _themes;
}
<sip snip snip>
#endregion
}
'आलसी' कोई कीवर्ड नहीं है। –
BoltClock
तो फिर इसे क्या कहा जाता है? –
इसे बस एक प्रकार कहा जाता है। अधिक विशेष रूप से, यह एक वर्ग है। – BoltClock