PDA

مشاهده نسخه کامل : تست کد سی شارپ ، با پردازنده ی چند نخی



SajjadKhati
07-05-19, 22:36
سلام
پیشاپیش از شرکت کردن دوستان ، تشکر میکنم .
اگه کسی پردازنده ی چند نخی (صرفا نه فقط چند هسته ای) داره (مثل i3 یا i7 های نسل قبل از هشتم اینتل یا i5 های نسل هشتم اینتل یا رایزن چند نخی) ، و ویژال استودیو هم داره و با ویژال استودیو یه کم آشناست ، این دو کد زیر را تست کنه و تفاوت زمانی شو بگه (ابتدا ، دو بار کد اولی ، پی در پی اجرا بشه و بعد ، دو بار کد دوم اجرا و زمان هر دو در هر بار گرفته بشه) :

1) کد اول :
در پروژه ی سی شارپ ، یک دکمه ایجاد کنید و در رویداد کلیک اش :



private void Button9_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
this.FileFolderCounter = 0;
this.SearchInDirectory(@"E:\");


MessageBox.Show("complete");
}


و همچنین :



int FileFolderCounter;
private void SearchInDirectory(string path)
{
try
{


DirectoryInfo folderInfo = new DirectoryInfo(path);
DirectoryInfo[] innerFolderInfos = folderInfo.GetDirectories();


if (innerFolderInfos.Length > 0) // تا زمانی که فقط پوشه پیدا بشه
{
foreach (var innerFolderInf in innerFolderInfos)
{
this.SearchInDirectory(innerFolderInf.FullName);
}


}


FileInfo[] innerFileInfos = folderInfo.GetFiles();
if (innerFileInfos.Length > 0) // تا زمانی که فایل پیدا بشه
{
List<FileInfo> listFileFolders = new List<FileInfo>(innerFileInfos);
listFileFolders.Add(new FileInfo(path));
this.FileFolderCounter += innerFileInfos.Length;
}

this.FileFolderCounter++;
}
catch (Exception)
{

}
}





2) کد دوم :
در پروژه ی سی شارپ ، یک دکمه ایجاد کنید و در رویداد کلیک اش :



private void Button9_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
this.FileFolderCounter = 0;
this.SearchInDirectorySynchronize(@"E:\");


MessageBox.Show("complete");
}


و همچنین :



int FileFolderCounter;
private void SearchInDirectorySynchronize(string path)
{
try
{


DirectoryInfo folderInfo = new DirectoryInfo(path);
DirectoryInfo[] innerFolderInfos = folderInfo.GetDirectories();


if (innerFolderInfos.Length > 0) // تا زمانی که فقط پوشه پیدا بشه
{
Parallel.ForEach(innerFolderInfos, innerFolderInf => this.SearchInDirectory(innerFolderInf.FullName));

}


FileInfo[] innerFileInfos = folderInfo.GetFiles();
if (innerFileInfos.Length > 0) // تا زمانی که فایل پیدا بشه
{
List<FileInfo> listFileFolders = new List<FileInfo>(innerFileInfos);
listFileFolders.Add(new FileInfo(path));
this.FileFolderCounter += innerFileInfos.Length;

}

this.FileFolderCounter++;
}
catch (Exception)
{


}
}





این کد ، تعداد فایل ها و فولدرهای درایو E در کامپیوتر را میشماره (اطلاعات فقط توی کامپیوتر اون شخص شمرده میشه . یعنی کد جاسوسی و ... نیست) و مانی هم که پیام complete را بده ، یعنی تمام شد.
با تشکر :11():