예제 #1
0
        private void bkDoProcess_DoWork(object sender, DoWorkEventArgs e)
        {
            StringBuilder sb        = new StringBuilder();
            ExecModel     execModel = (ExecModel)e.Argument;

            _swAll.Start();
            int procFileCnt = 0;

            foreach (string line in txtSource.Lines)
            {
                string file  = line.Trim();
                string space = new string(' ', line.Length - file.Length);

                if (file == "" || !File.Exists(file))
                {
                    sb.AppendLine(line);
                }
                else
                {
                    string hashResult;
                    switch (execModel)
                    {
                    case ExecModel.RHashDll:
                        hashResult = CreateEd2kLinkByRHash(file);
                        break;

                    case ExecModel.RHashExe:
                        hashResult = CreateEd2kLinkByRHashExe(file);
                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }

                    sb.AppendLine(space + hashResult);
                    bkDoProcess.ReportProgress(++procFileCnt);
                }

                if (bkDoProcess.CancellationPending)
                {
                    break;
                }
            }

            e.Result = sb.ToString().Trim();
            _swAll.Stop();
        }
예제 #2
0
 private void DoCalculate(ExecModel execModel)
 {
     UIInProcess(true);
     txtTarget.Clear();
     bkDoProcess.RunWorkerAsync(execModel);
 }
예제 #3
0
 private void DoCalculate(ExecModel execModel)
 {
     UIInProcess(true);
     txtTarget.Clear();
     bkDoProcess.RunWorkerAsync(execModel);
 }