private void resetTranscoderFile(TranscoderFile file) { if (InvokeRequired) { Invoke(new ResetTranscoderFileCallback(resetTranscoderFile), file); return; } var index = TranscoderFiles.IndexOf(file); TranscoderFiles.ResetItem(index); }
async void MainForm_DragDrop(object sender, DragEventArgs e) { var paths = e.Data.GetData(DataFormats.FileDrop) as String[]; await Task.Run(() => { var tfiles = new List <TranscoderFile>(paths.Length * 30); // over-estimate 30 songs per album foreach (var path in paths) { if (Directory.Exists(path)) { var files = Directory.GetFiles(path, "*", SearchOption.AllDirectories); tfiles.AddRange(files.Where(file => TranscoderFile.IsTranscodableFile(file)).Select(file => new TranscoderFile(file, path))); } else if (File.Exists(path) && TranscoderFile.IsTranscodableFile(path)) { tfiles.Add(new TranscoderFile(path)); } } ; AddFiles(tfiles); }); }