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--;
            }
        }
    }