/// <summary> /// 添加到同步队列 /// </summary> /// <param name="model"></param> public void PushSync(ISyncModel model) { lock (m_aLock) { if (model == null) return; m_aSyncQueue.Enqueue(model); } }
/// <summary> /// 添加到同步队列 /// </summary> /// <param name="model"></param> public void PushSync(ISyncModel model) { lock (m_aLock) { if (model == null) { return; } m_aSyncQueue.Enqueue(model); } }
/// <summary> /// 获得一个同步队列 /// </summary> /// <returns></returns> protected ISyncModel PopSync() { lock (m_aLock) { if (m_aSyncQueue.Count == 0) { return(null); } ISyncModel model = m_aSyncQueue.Dequeue(); return(model); } }
static void SetReferencedSyncModelPath(ISyncModel syncModel, SyncManifest manifest) { switch (syncModel) { // Keep for backward compatibility with old client cache model case SyncPrefab syncPrefab: SetReferencedSyncModelPath(syncPrefab, manifest); break; case SyncObject syncObject: SetReferencedSyncModelPath(syncObject, manifest); break; case SyncMaterial syncMaterial: SetReferencedSyncModelPath(syncMaterial, manifest); break; case SyncObjectInstance syncObjectInstance: SetReferencedSyncModelPath(syncObjectInstance, manifest); break; } }
/// <summary> /// 处理同步队列 /// </summary> protected void HandleSync() { int nCount = GetSyncCount(); for (int nIndex = 0; nIndex < nCount; ++nIndex) { ISyncModel model = PopSync(); if (model == null) { continue; } try { // 处理这个Handle model.Handle(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } }