public void MapDataThread(object threadTask) { ThreadMapObject threadTaskInfo = (ThreadMapObject)threadTask; ChunkColumn.MapDataInfo chunkMapData = World.perlinMapGen.GenerateNoiseMap(threadTaskInfo.colCoord); ThreadMapInfo threadInfo = new ThreadMapInfo(threadTaskInfo.callback, chunkMapData); lock (threadMapQueue) { threadMapQueue.Enqueue(threadInfo); } }
void Update() { if (threadMeshQueue.Count > 0) { for (int i = 0; i < threadMeshQueue.Count; i++) { ThreadMeshInfo threadInfo = threadMeshQueue.Dequeue(); threadInfo.callback(threadInfo.chunkData); amountOfWorkerThreads--; } } if (threadMapQueue.Count > 0) { for (int i = 0; i < threadMapQueue.Count; i++) { ThreadMapInfo threadInfo = threadMapQueue.Dequeue(); threadInfo.callback(threadInfo.chunkMapData); amountOfWorkerThreads--; } } }