public DownloadThread(string name, DownloadParams parameters)
 {
     _callApiFunctions = new FileApiFunctions();
     thread            = new Thread(Func);
     thread.Name       = name;
     thread.Start(parameters);
 }
 public DownloadParams(DownloadParams parameters)
 {
     Config     = parameters.Config;
     FileName   = parameters.FileName;
     FileType   = parameters.FileType;
     Offset     = parameters.Offset;
     Count      = parameters.Count;
     FileNumber = parameters.FileNumber;
 }
        void Func(object parameters)
        {
            var    timer         = new Stopwatch();
            Stream outFileStream = new FileStream("C:/docconversion/" + Thread.CurrentThread.Name + ".txt", FileMode.OpenOrCreate, FileAccess.ReadWrite);
            var    outFile       = new StreamWriter(outFileStream);
            var    data          = new DownloadParams((DownloadParams)parameters);

            timer = Stopwatch.StartNew();
            _callApiFunctions.DownloadFiles(data.Config, data.FileName, data.FileType, data.Offset, data.Count);
            timer.Stop();
            outFile.Write(Thread.CurrentThread.Name + " executing time: " + timer.ElapsedMilliseconds + " \n\n");
            if (data.Count == 0)
            {
                outFile.Write("Average download time for file: " + timer.ElapsedMilliseconds / 1 + "\n");
            }
            else
            {
                outFile.Write("Average download time for file: " + timer.ElapsedMilliseconds / data.Count + "\n");
            }
            Thread.Sleep(0);
            outFile.Close();
            //outFileStream.Close();
        }