private void startTileThreadDistant() { //Create a new thread to calculate the first tile in tileQueue if (tileCreationThreadDistant == null) { //If list is not empty if (tileQueueDistant.Count > 0) { //Ensure the tile is still relevent and hasn't been created in past if (tileQueueTouchedDistant.Contains(tileQueueDistant[0])) { string tileID = tileQueueDistant[0].x.ToString() + ":" + tileQueueDistant[0].y.ToString(); tileCreationThreadDistant = new TileCreationThread(); tileCreationThreadDistant.InData = tileQueueDistant[0]; tileCreationThreadDistant.InHeightMapSize = m_heightMapSizeLowRes; tileCreationThreadDistant.InTerrainSize = terrainSize; tileCreationThreadDistant.Start(); } else tileQueueDistant.RemoveAt(0); } } }