Я делаю сервер-клиентское приложение. Клиент может управлять файлами сервера (переименовывать/копировать/удалять и т. Д.) Когда я выбираю более одного типа (n) файлов для копирования/вставки, он запускает (n) потоки pasteCкак начать много потоков в очереди?
Мне нужен способ сделать их в очереди. Как это сделать???
private void Paste()
{
foreach (ListViewItem item in copiedItems)
{
Thread pasteC = new Thread(unused => fmc.PasteFromCopy(item.Text, somePath));
pasteC.Start();
}
}
код вниз в FMC классе ..
public void PasteFromCopy(string source,string dest)
{
if (IsFolder(source))
{
CopyDirectory(source, dest);
}
else
{
CopyStream(source, dest);
}
}
Почему он запускает n потоков? Копирование файлов обычно не привязывается к ЦП, поэтому потоки будут делать это медленнее *, а не быстрее. И если вы хотите последовательно запускать потоки, почему бы вам просто не сделать этого, не используя нити? – svick
Мне жаль, что я не объяснил о моем приложении .. его клиент-сервер .. он позволяет мне управлять файлами и папками .. и исследовать их .. так что если я не использовал потоки .. он будет отставать и я не сможет исследовать при копировании файлов .. поэтому мне пришлось использовать потоки, чтобы я мог исследовать и переименовывать и видеть размер и все остальное, пока он копирует .. –
Затем используйте только один * поток, см. редактирование моего ответа. – svick