Advertisement
Guest User

Untitled

a guest
May 28th, 2015
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.04 KB | None | 0 0
  1. Task.Factory.StartNew(async () =>
  2.             {
  3.                 int size = blocksToPlace.Count();
  4.  
  5.                 Block[] blocks = new Block[size];
  6.                 BlockConfig[] blockconfigs = new BlockConfig[size];
  7.                 bool[] testResults = new bool[size];
  8.  
  9.                 Monitor.Enter(_lock);
  10.                 for (int i = 0; i <= size; i++)
  11.                 {
  12.                     if (_blockConfigs.TryGetValue(blocksToPlace[i].blockID, out blockconfigs[i]))
  13.                     {
  14.                         blocks[i] = new Block(blockconfigs[i], blocksToPlace[i].point, blocksToPlace[i].placerID);
  15.                     }
  16.                     else
  17.                     {
  18.                         //Tempary exit lock while awaiting results
  19.                         Monitor.Exit(_lock);
  20.                         MysqlResults<BlockConfigInfo> mysqlResults = await MySQL.tryListBlockConfig(blocksToPlace[i].blockID);
  21.                         Monitor.Enter(_lock);
  22.  
  23.                         if (mysqlResults.success)
  24.                         {
  25.                             blockconfigs[i] = BlockConfig.fromBlockConfigInfo(mysqlResults.item);
  26.                             addBlockConfig(blockconfigs[i]);
  27.  
  28.                             testResults[i] = _blockConfigs.TryGetValue(blocksToPlace[i].blockID, out blockconfigs[i]);
  29.                             if (testResults[i]) blocks[i] = new Block(blockconfigs[i], blocksToPlace[i].point, blocksToPlace[i].placerID);
  30.                             else blocks[i] = new Block(Program.errorBlock, blocksToPlace[i].point, blocksToPlace[i].placerID);
  31.                         }
  32.                         else
  33.                         {
  34.                             blocks[i] = new Block(Program.errorBlock, blocksToPlace[i].point, blocksToPlace[i].placerID);
  35.                         }
  36.                     }
  37.                     _blocks[blocksToPlace[i].point.x, blocksToPlace[i].point.y] = blocks[i];
  38.                     _blocksList.Add(blocks[i]);
  39.                 }
  40.                 Monitor.Exit(_lock);
  41.             });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement