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():
پیشاپیش از شرکت کردن دوستان ، تشکر میکنم .
اگه کسی پردازنده ی چند نخی (صرفا نه فقط چند هسته ای) داره (مثل 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():