private static void SaveProtobufsToAzure(RawDataUploader rawDataUploader) { // search in the right directory and discover all files. Create dir from remoteRunnableWays then upload all files there. Parallel.ForEach(ProtobufAreaConverter.CreateLookupNodeProtobufs(), new ParallelOptions { MaxDegreeOfParallelism = 4 }, async(row) => { var key = row.Item1; var nodes = row.Item2; var nodeFileObj = new FullNodeSet(); nodeFileObj.Nodes.AddRange(nodes); Console.WriteLine($"{key}: prepped {nodes.Count} nodes: {nodeFileObj.CalculateSize()} bytes"); var byteArray = nodeFileObj.ToByteArray(); var fileName = $"nodes/{key.Substring(0, 2)}/{key}"; await rawDataUploader.WriteBlobAsync(fileName, byteArray); }); }