PDA

View Full Version : سوال: کند شدن وحشتناک سیستم هنگام عملیات کپی



forodo
جمعه 04 بهمن 1392, 00:40 صبح
سلام
من با کد زیر عملیات کپی فولدر و تمام زیرشاخه های داخلش ( فولدر و فایل ) رو انجام می دم ولی وقتی که شروع به کپی می کنه وحشتناک سرعت سیستم میاد پایین در حدی که اسکرول صفحات وب با تأخیر زیادی حرکت می کنه و مای کامپیوتر رو که می خوام باز کنم خیلی طول می کشه و ...
لطفاً بگید چیکار کنم که هنگام کپی تأثیری روی سرعت کامپیوتر بوجود نیاره.
با تشکر

private void CopyDirectory(DirectoryInfo source, DirectoryInfo destination)
{
if (!destination.Exists)
{
destination.Create();
}
// Copy all files.
FileInfo[] files = source.GetFiles();
foreach (FileInfo file in files)
{
if (file.ToString() == "FolderMarker.ico")
{
File.Delete(destination.FullName + "\\" + file.Name);
}
if (file.ToString() != "Desktop.ini")
{
if (!File.Exists(destination.FullName + "\\" + file.Name))
{
file.CopyTo(Path.Combine(destination.FullName, file.Name));
}
}
}
// Process subdirectories.
DirectoryInfo[] dirs = source.GetDirectories();
foreach (DirectoryInfo dir in dirs)
{
// Get destination directory.
string destinationDir = Path.Combine(destination.FullName, dir.Name);
if (File.Exists(source + @"\FolderMarker.ico") && tek != source.ToString())
{
FolderIcon myFolderIcon = new FolderIcon(destination.ToString());
myFolderIcon.CreateFolderIcon(source + @"\FolderMarker.ico");
myFolderIcon = null;
}
// Call CopyDirectory() recursively.
string be = source.ToString() + "\\" + dir.ToString();
DirectoryInfo dibe = new DirectoryInfo(be);
CopyDirectory(dibe, new DirectoryInfo(destinationDir));
}
}

سوداگر
جمعه 04 بهمن 1392, 00:55 صبح
فکر نکنم روشت ایراد داشته باشه ولی برا اینجور کارها باید از threading استفاده کرد تا سیستم از کار نیوفته، چندریسمانی توی سی شارپ بلد نیستم وگرنه کدش رو میذاشتم