public SynGetted Get(long lastIndex) { SynGetted getted = new SynGetted(); getted.Index = lastIndex; LockDicObj.EnterReadLock(); try { if (Data.Count != 0) { getted.Index = Data.Keys.Max(); getted.SynData = (from d in Data where d.Key > lastIndex select d.Value.SynData).ToArray(); } } catch (Exception ex) { LogProxy.Error(ex, false); } finally { LockDicObj.ExitReadLock(); } return(getted); }
private static void GetCallbackMethod(object obj) { if (IsGetting) { return; } lock (LockGetObj) { if (IsGetting) { return; } IsGetting = true; } ISynData[] synData; try { SynGetted getted = SynServerService.Get(CurrentIndex); if (getted == null) { return; } CurrentIndex = getted.Index; synData = getted.SynData; if (synData == null || synData.Length == 0) { string appId = SynServerService.CurrentAppId; if (!string.Equals(appId, SynServerAppId, StringComparison.OrdinalIgnoreCase)) { CurrentIndex = -1; SynServerAppId = appId; } return; } } catch (Exception ex) { LogProxy.Error(ex, false); return; } finally { IsGetting = false; } Getted(synData); }