public void Compress(string originalFileName, string archiveFileName) { var originalFileSize = _fileHelper.GetFileSize(originalFileName); _fileHelper.CreateEmptyFile(archiveFileName); for (int i = 0; i < Environment.ProcessorCount; i++) { var thread = new Thread(() => _compressor.Compress(originalFileName, originalFileSize, archiveFileName)); try { thread.Start(); } catch { Console.WriteLine("Thread can not be created"); throw; } } }