Exemplo n.º 1
0
 private void Run()
 {
     try {
         while (running)
         {
             Node n;
             if (loadingQueue.TryDequeue(out n))
             {
                 Monitor.Enter(n);
                 if (!n.HasPointsToRender() && !n.HasGameObjects())
                 {
                     Monitor.Exit(n);
                     CloudLoader.LoadPointsForNode(n);
                     cache.Insert(n);
                 }
                 else
                 {
                     Monitor.Exit(n);
                 }
             }
         }
     } catch (Exception ex) {
         Debug.LogError(ex);
     }
 }
Exemplo n.º 2
0
 private void Load()
 {
     running = true;
     while (running)
     {
         Monitor.Enter(toLoad);
         if (toLoad.Count != 0)
         {
             Node n = toLoad.Dequeue();
             Monitor.Exit(toLoad);
             uint pc = CloudLoader.LoadAllPointsForNode(n);
             lock (nodePointcounts) {
                 nodePointcounts.Add(n, pc);
             }
             lock (rootNodes) {
                 rootNodes.Add(n);
             }
             lock (toDisplay) {
                 toDisplay.Enqueue(n);
             }
         }
         else
         {
             Monitor.Exit(toLoad);
         }
     }
 }