我正在製作服務器客戶端應用程序。客戶端可以管理服務器文件(重命名/複製/刪除等)當我選擇多個像(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個線程?複製文件通常不受CPU限制,因此線程實際上會使其速度變慢*,而不是更快。如果你想按順序運行線程,爲什麼你不這樣做,而不使用任何線程? – svick 2012-02-25 01:58:03
即時通訊對不起,我沒有解釋我的應用程序..其客戶端服務器..它讓我能夠控制文件和文件夾..並探索他們..所以如果我沒有使用線程..它會滯後,我複製文件時將無法探索..所以我不得不使用線程,以便我可以探索和重命名,並在複製時查看大小和其他所有內容。 – 2012-02-25 11:30:06
然後使用* * *線程,請參閱編輯我的答案。 – svick 2012-02-25 12:06:05