當前位置: 首頁>>代碼示例>>C#>>正文


C# Guid.ReleaseReadLock方法代碼示例

本文整理匯總了C#中System.Guid.ReleaseReadLock方法的典型用法代碼示例。如果您正苦於以下問題:C# Guid.ReleaseReadLock方法的具體用法?C# Guid.ReleaseReadLock怎麽用?C# Guid.ReleaseReadLock使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在System.Guid的用法示例。


在下文中一共展示了Guid.ReleaseReadLock方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: GetAllEventsSinceVersion

 public IEnumerable<ISourcedEvent> GetAllEventsSinceVersion(Guid id, long version)
 {
     FileInfo file = id.GetEventStoreFileInfo(_path);
     if (!file.Exists || GetVersion(id) <= version) yield break;
     try
     {
         id.GetReadLock();
         using (var reader = file.OpenRead())
         {
             var indexBuf = new byte[4];
             reader.Seek(GetEventSourceIndexForVersion(id, version), SeekOrigin.Begin);
             var curVer = version + 1;
             while (reader.Read(indexBuf, 0, 4) == 4)
             {
                 var length = BitConverter.ToInt32(indexBuf, 0);
                 var eventBytes = new byte[length];
                 reader.Read(eventBytes, 0, length);
                 yield return (SourcedEvent)_formatter.Deserialize(eventBytes.ReadStoredEvent(id, curVer++));
             }
         }
     }
     finally
     {
         id.ReleaseReadLock();
     }
 }
開發者ID:HAXEN,項目名稱:ncqrs,代碼行數:26,代碼來源:NoDBEventStore.cs

示例2: GetSnapshotText

 private static string GetSnapshotText(Guid eventSourceId, string path)
 {
     try
     {
         eventSourceId.GetReadLock("snapshot");
         var snapshottext = File.ReadAllText(path);
         return snapshottext;
     } finally
     {
         eventSourceId.ReleaseReadLock("snapshot");
     }
 }
開發者ID:VincentSchippefilt,項目名稱:ncqrs,代碼行數:12,代碼來源:NoDBSnapshotStore.cs

示例3: ReadFrom

 public CommittedEventStream ReadFrom(Guid id, long minVersion, long maxVersion)
 {
     var events = new List<CommittedEvent>();
     FileInfo file = id.GetEventStoreFileInfo(_path);
     if (!file.Exists || GetVersion(id) <= minVersion)
     {
         return new CommittedEventStream(id);
     }
     var version = minVersion;
     if (version < 0)
     {
         version = 0;
     }
     try
     {
         id.GetReadLock();
         using (var reader = file.OpenRead())
         {
             var indexBuf = new byte[4];
             reader.Seek(GetEventSourceIndexForVersion(id, version), SeekOrigin.Begin);
             var curVer = version + 1;
             while ((reader.Read(indexBuf, 0, 4) == 4) && version < maxVersion)
             {
                 var length = BitConverter.ToInt32(indexBuf, 0);
                 var eventBytes = new byte[length];
                 reader.Read(eventBytes, 0, length);
                 var evnt = ReadStoredEvent(eventBytes, id, curVer++);
                 events.Add(evnt);
             }
         }
         return new CommittedEventStream(id, events);
     }
     finally
     {
         id.ReleaseReadLock();
     }
 }
開發者ID:VincentSchippefilt,項目名稱:ncqrs,代碼行數:37,代碼來源:NoDBEventStore.cs


注:本文中的System.Guid.ReleaseReadLock方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。