Wednesday, May 2, 2012

Caching Techniques in Sharepoint


public void ListItemCache()
{
   SPListItemCollection spListItemsObject;

   spListItemsObject = (SPListItemCollection)Cache["ListItemCacheName"];
   if(spListItemsObject == null)
   {
      spListItemsObject = DoQueryToReturnItems();
      Cache.Add("ListItemCacheName", spListItemsObject, ..);
   }
}




If you need thread safe code the try following :


private static object _lock =  new object();

public void CacheData()
{
   SPListItemCollection spListItemsObject;
       spListItemsObject = (SPListItemCollection)Cache["ListItemCacheName"];
      if(spListItemsObject == null)
      {
         lock (_lock)
         {
              // Ensure that the data was not loaded by a concurrent thread
              spListItemsObject = (SPListItemCollection)Cache["ListItemCacheName"];
              if (spListItemsObject == null)
              {
                   spListItemsObject = DoQueryToReturnItems();
                   Cache.Add("ListItemCacheName", spListItemsObject, ..);
              }
         }
     }
}


No comments:

Post a Comment

Thank you for Commenting Will reply soon ......

Featured Posts

Explained: Complete Guide to systemd-logind, Power Keys, Laptop Lids, VTs & User Sessions

 If you use Linux on a laptop, desktop, server, or remote-access machine, there is a good chance that systemd-logind is quietly controlling...