case PacketType.TransferRequest: // We put transfer requests into a big queue and then spawn a thread for each new one TransferRequestPacket transfer = (TransferRequestPacket)Pack; AssetRequests.Enqueue(transfer); Thread AssetLoaderThread = new Thread(new ThreadStart(AssetLoader)); AssetLoaderThread.IsBackground = true; AssetLoaderThread.Start(); break;