PDA

View Full Version : بهینه سازی کد



hsdnhd
جمعه 18 مهر 1393, 18:33 عصر
باسلام من قطعه کدی داشتم که شدیدا داغونه واصلا بهینه نیست میخواستم ازدوستان کسی میتونه کدی جانشین بهم بده که دقیقا همین خروجی رو به من بده و کمتر از منابع سیستم استفاده کنه وباعث هنگ سیستم نشه ممنون.

label13.Text = "";
namepersian = textBox3.Text;
nameenglish = textBox4.Text;
mark = textBox1.Text;
textBox2.Text = "";
StringBuilder sb = new StringBuilder();
switch (listBox1.SelectedIndex)
{
case 0:
using (StreamReader sr = new StreamReader(@"C:/Season1.txt"))
{
sb.Append(sr.ReadToEnd());
season = sb.ToString();
textBox2.Text = season;
}
break;
case 1:
using (StreamReader sr = new StreamReader(@"c:/Season1.txt"))
using (StreamReader sr2 = new StreamReader(@"c:/Season2.txt"))
{
sb.Append(sr.ReadToEnd());
sb.Append(sr2.ReadToEnd());
season = sb.ToString();
}
break;
case 2:
using (StreamReader sr = new StreamReader(@"c:/Season1.txt"))
using (StreamReader sr2 = new StreamReader(@"c:/Season2.txt"))
using (StreamReader sr3 = new StreamReader(@"c:/Season3.txt"))
{
sb.Append(sr.ReadToEnd());
sb.Append(sr2.ReadToEnd());
sb.Append(sr3.ReadToEnd());
season = sb.ToString();
}
break;
case 3:
using (StreamReader sr = new StreamReader(@"c:/Season1.txt"))
using (StreamReader sr2 = new StreamReader(@"c:/Season2.txt"))
using (StreamReader sr3 = new StreamReader(@"c:/Season3.txt"))
using (StreamReader sr4 = new StreamReader(@"c:/Season4.txt"))
{
sb.Append(sr.ReadToEnd());
sb.Append(sr2.ReadToEnd());
sb.Append(sr3.ReadToEnd());
sb.Append(sr4.ReadToEnd());
season = sb.ToString();
}
break;
case 4:
using (StreamReader sr = new StreamReader(@"c:/Season1.txt"))
using (StreamReader sr2 = new StreamReader(@"c:/Season2.txt"))
using (StreamReader sr3 = new StreamReader(@"c:/Season3.txt"))
using (StreamReader sr4 = new StreamReader(@"c:/Season4.txt"))
using (StreamReader sr5 = new StreamReader(@"c:/Season5.txt"))
{
sb.Append(sr.ReadToEnd());
sb.Append(sr2.ReadToEnd());
sb.Append(sr3.ReadToEnd());
sb.Append(sr4.ReadToEnd());
sb.Append(sr5.ReadToEnd());
season = sb.ToString();
}
break;
case 5:
using (StreamReader sr = new StreamReader(@"c:/Season1.txt"))
using (StreamReader sr2 = new StreamReader(@"c:/Season2.txt"))
using (StreamReader sr3 = new StreamReader(@"c:/Season3.txt"))
using (StreamReader sr4 = new StreamReader(@"c:/Season4.txt"))
using (StreamReader sr5 = new StreamReader(@"c:/Season5.txt"))
using (StreamReader sr6 = new StreamReader(@"c:/Season6.txt"))
{
sb.Append(sr.ReadToEnd());
sb.Append(sr2.ReadToEnd());
sb.Append(sr3.ReadToEnd());
sb.Append(sr4.ReadToEnd());
sb.Append(sr5.ReadToEnd());
sb.Append(sr6.ReadToEnd());
season = sb.ToString();
}
break;
case 6:
using (StreamReader sr = new StreamReader(@"c:/Season1.txt"))
using (StreamReader sr2 = new StreamReader(@"c:/Season2.txt"))
using (StreamReader sr3 = new StreamReader(@"c:/Season3.txt"))
using (StreamReader sr4 = new StreamReader(@"c:/Season4.txt"))
using (StreamReader sr5 = new StreamReader(@"c:/Season5.txt"))
using (StreamReader sr6 = new StreamReader(@"c:/Season6.txt"))
using (StreamReader sr7 = new StreamReader(@"c:/Season7.txt"))
{
sb.Append(sr.ReadToEnd());
sb.Append(sr2.ReadToEnd());
sb.Append(sr3.ReadToEnd());
sb.Append(sr4.ReadToEnd());
sb.Append(sr5.ReadToEnd());
sb.Append(sr6.ReadToEnd());
sb.Append(sr7.ReadToEnd());
season = sb.ToString();
}
break;
case 7:
using (StreamReader sr = new StreamReader(@"c:/Season1.txt"))
using (StreamReader sr2 = new StreamReader(@"c:/Season2.txt"))
using (StreamReader sr3 = new StreamReader(@"c:/Season3.txt"))
using (StreamReader sr4 = new StreamReader(@"c:/Season4.txt"))
using (StreamReader sr5 = new StreamReader(@"c:/Season5.txt"))
using (StreamReader sr6 = new StreamReader(@"c:/Season6.txt"))
using (StreamReader sr7 = new StreamReader(@"c:/Season7.txt"))
using (StreamReader sr8 = new StreamReader(@"c:/Season8.txt"))
{
sb.Append(sr.ReadToEnd());
sb.Append(sr2.ReadToEnd());
sb.Append(sr3.ReadToEnd());
sb.Append(sr4.ReadToEnd());
sb.Append(sr5.ReadToEnd());
sb.Append(sr6.ReadToEnd());
sb.Append(sr7.ReadToEnd());
sb.Append(sr8.ReadToEnd());
season = sb.ToString();
}
break;
case 8:
using (StreamReader sr = new StreamReader(@"c:/Season1.txt"))
using (StreamReader sr2 = new StreamReader(@"c:/Season2.txt"))
using (StreamReader sr3 = new StreamReader(@"c:/Season3.txt"))
using (StreamReader sr4 = new StreamReader(@"c:/Season4.txt"))
using (StreamReader sr5 = new StreamReader(@"c:/Season5.txt"))
using (StreamReader sr6 = new StreamReader(@"c:/Season6.txt"))
using (StreamReader sr7 = new StreamReader(@"c:/Season7.txt"))
using (StreamReader sr8 = new StreamReader(@"c:/Season8.txt"))
using (StreamReader sr9 = new StreamReader(@"c:/Season9.txt"))
{
sb.Append(sr.ReadToEnd());
sb.Append(sr2.ReadToEnd());
sb.Append(sr3.ReadToEnd());
sb.Append(sr4.ReadToEnd());
sb.Append(sr5.ReadToEnd());
sb.Append(sr6.ReadToEnd());
sb.Append(sr7.ReadToEnd());
sb.Append(sr8.ReadToEnd());
sb.Append(sr9.ReadToEnd());
season = sb.ToString();
}
break;
case 9:
using (StreamReader sr = new StreamReader(@"c:/Season1.txt"))
using (StreamReader sr2 = new StreamReader(@"c:/Season2.txt"))
using (StreamReader sr3 = new StreamReader(@"c:/Season3.txt"))
using (StreamReader sr4 = new StreamReader(@"c:/Season4.txt"))
using (StreamReader sr5 = new StreamReader(@"c:/Season5.txt"))
using (StreamReader sr6 = new StreamReader(@"c:/Season6.txt"))
using (StreamReader sr7 = new StreamReader(@"c:/Season7.txt"))
using (StreamReader sr8 = new StreamReader(@"c:/Season8.txt"))
using (StreamReader sr9 = new StreamReader(@"c:/Season9.txt"))
using (StreamReader sr10 = new StreamReader(@"c:/Season10.txt"))
{
sb.Append(sr.ReadToEnd());
sb.Append(sr2.ReadToEnd());
sb.Append(sr3.ReadToEnd());
sb.Append(sr4.ReadToEnd());
sb.Append(sr5.ReadToEnd());
sb.Append(sr6.ReadToEnd());
sb.Append(sr7.ReadToEnd());
sb.Append(sr8.ReadToEnd());
sb.Append(sr9.ReadToEnd());
sb.Append(sr10.ReadToEnd());
season = sb.ToString();
}
break;
case 10:
using (StreamReader sr = new StreamReader(@"c:/Season1.txt"))
using (StreamReader sr2 = new StreamReader(@"c:/Season2.txt"))
using (StreamReader sr3 = new StreamReader(@"c:/Season3.txt"))
using (StreamReader sr4 = new StreamReader(@"c:/Season4.txt"))
using (StreamReader sr5 = new StreamReader(@"c:/Season5.txt"))
using (StreamReader sr6 = new StreamReader(@"c:/Season6.txt"))
using (StreamReader sr7 = new StreamReader(@"c:/Season7.txt"))
using (StreamReader sr8 = new StreamReader(@"c:/Season8.txt"))
using (StreamReader sr9 = new StreamReader(@"c:/Season9.txt"))
using (StreamReader sr10 = new StreamReader(@"c:/Season10.txt"))
using (StreamReader sr11 = new StreamReader(@"c:/Season11.txt"))
{
sb.Append(sr.ReadToEnd());
sb.Append(sr2.ReadToEnd());
sb.Append(sr3.ReadToEnd());
sb.Append(sr4.ReadToEnd());
sb.Append(sr5.ReadToEnd());
sb.Append(sr6.ReadToEnd());
sb.Append(sr7.ReadToEnd());
sb.Append(sr8.ReadToEnd());
sb.Append(sr9.ReadToEnd());
sb.Append(sr10.ReadToEnd());
sb.Append(sr11.ReadToEnd());
season = sb.ToString();
}
break;
case 11:
using (StreamReader sr = new StreamReader(@"c:/Season1.txt"))
using (StreamReader sr2 = new StreamReader(@"c:/Season2.txt"))
using (StreamReader sr3 = new StreamReader(@"c:/Season3.txt"))
using (StreamReader sr4 = new StreamReader(@"c:/Season4.txt"))
using (StreamReader sr5 = new StreamReader(@"c:/Season5.txt"))
using (StreamReader sr6 = new StreamReader(@"c:/Season6.txt"))
using (StreamReader sr7 = new StreamReader(@"c:/Season7.txt"))
using (StreamReader sr8 = new StreamReader(@"c:/Season8.txt"))
using (StreamReader sr9 = new StreamReader(@"c:/Season9.txt"))
using (StreamReader sr10 = new StreamReader(@"c:/Season10.txt"))
using (StreamReader sr11 = new StreamReader(@"c:/Season11.txt"))
using (StreamReader sr12 = new StreamReader(@"c:/Season12.txt"))
{
sb.Append(sr.ReadToEnd());
sb.Append(sr2.ReadToEnd());
sb.Append(sr3.ReadToEnd());
sb.Append(sr4.ReadToEnd());
sb.Append(sr5.ReadToEnd());
sb.Append(sr6.ReadToEnd());
sb.Append(sr7.ReadToEnd());
sb.Append(sr8.ReadToEnd());
sb.Append(sr9.ReadToEnd());
sb.Append(sr10.ReadToEnd());
sb.Append(sr11.ReadToEnd());
sb.Append(sr12.ReadToEnd());
season = sb.ToString();
}
break;
season = season.Replace(namepersian, "شششش");
season = season.Replace(nameenglish, "aaaa");
season = season.Replace(finpersian, "شششش1");
season = season.Replace(finenglish, "aaaa1");
if (textBox1.Text == "")
{
textBox1.Text = mark;
}
else
{
season = season.Replace(mark, ",");
}
textBox2.Text = season;
}

Mahmoud.Afrad
جمعه 18 مهر 1393, 19:38 عصر
میتونی از حلقه و برای جلوگیری از هنگ میتونی از ترد استفاده کنی. (کد زیر رو تست نکردم)

label13.Text = "";
namepersian = textBox3.Text;
nameenglish = textBox4.Text;
mark = textBox2.Text;
textBox2.Text = "";
int maxValue = listBox1.SelectedIndex + 1;

Thread t = new Thread(() =>
{
StringBuilder sb = new StringBuilder();

List<string> fileNames = new List<string>
{
@"C:/Season1.txt",
@"C:/Season2.txt",
@"C:/Season3.txt",
@"C:/Season4.txt",
@"C:/Season5.txt",
@"C:/Season6.txt",
@"C:/Season7.txt",
@"C:/Season8.txt",
@"C:/Season9.txt",
@"C:/Season10.txt",
@"C:/Season11.txt",
@"C:/Season12.txt",
};

for (int i = 0; i < maxValue; i++)
{
using (StreamReader sr = new StreamReader(fileNames[i]))
{
sb.Append(sr.ReadToEnd());
}
}

sb = sb.Replace(namepersian, "شششش")
.Replace(nameenglish, "aaaa")
.Replace(finpersian, "شششش1")
.Replace(finenglish, "aaaa1");


this.Invoke(new Action(() =>
{

if (string.IsNullOrEmpty(textBox2.Text))
{
textBox2.Text = mark;
}
else
{
sb = sb.Replace(mark, ",");
}

season = sb.ToString();
textBox2.Text = season;
}));

});

t.Start();

hsdnhd
شنبه 19 مهر 1393, 17:29 عصر
ممکنه یه توضیحی درمورد اون قسمت اضافه شده بدید؟
هرروزی که تو برنامه نویسی سی شارپ جلو میرم یک چیز جدید می شنوم و متوجهش میشم وباید برم دنبالش یادبگیرم واقعا خیلی زبان گسترده وکاملی هست.مثلا تابحال تردهارو نشنیدم اسمشون رو.ممنون