PDA

View Full Version : هنگ کردن برنامه در حلقه های طولانی؟



sobaisobai
سه شنبه 08 آذر 1390, 22:57 عصر
سلام
تو حلقه های طولانی چیکار میشه کرد که برنامه هنگ نکنه؟
برنامه Word در نظر بگیرید وقتی که حجم متن زیاد هم باشه میشه از امکانات دیگه برنامه استفاده کرد تا متن لود بشه.
چه جوری میشه اون کار رو کرد؟
از دوستان اگه کسی اطلاعاتی داره کمک کنه
ممنون

haniyehghassami
سه شنبه 08 آذر 1390, 23:08 عصر
دوست عزیز کمی سرچ میکردی این مورد را پیدا میکردی

ار thread استفاده بکنی

sobaisobai
سه شنبه 08 آذر 1390, 23:11 عصر
ممنون
ولی چه جوری؟

mmd2009
سه شنبه 08 آذر 1390, 23:31 عصر
با سلام

هم نخ خوبه و هم bw که فرضا میتونید به این روش عمل کنید :


static void Main(string[] args)
{
var thread = new Thread(SampleThread);
thread.Start();
Console.WriteLine("asdad");
}

public static void SampleThread()
{
for (var i = 0; i < 100000000; i++)
{
Console.WriteLine(i);
}
}


موفق باشید

sobaisobai
چهارشنبه 09 آذر 1390, 00:27 صبح
با سلام

هم نخ خوبه و هم bw که فرضا میتونید به این روش عمل کنید :


static void Main(string[] args)
{
var thread = new Thread(SampleThread);
thread.Start();
Console.WriteLine("asdad");
}

public static void SampleThread()
{
for (var i = 0; i < 100000000; i++)
{
Console.WriteLine(i);
}
}


موفق باشید
متدی که داخل thread صدا زده میشه حتما باید static باشه؟

mmd2009
چهارشنبه 09 آذر 1390, 00:51 صبح
نه دوست عزیز.

Hossenbor
چهارشنبه 09 آذر 1390, 08:18 صبح
دوست عزیز فقط یک چیزی اگه این تو این ترد یک ترد دیگه باشه خطا ایجاد میشه که اغلب برای فراخوانی کنترلهایه گرافیکی پیش میاد که برای استفاده از اون باید یک delegate تعریف کنی و با متد invoke متد مورد نظر رو فراخوانی کنی اگه از صحبتایه من چیزی سر در نیاوردی دنبال کلمه invoke تو MSDN بگرد

sobaisobai
چهارشنبه 09 آذر 1390, 10:49 صبح
با سلام

هم نخ خوبه و هم bw که فرضا میتونید به این روش عمل کنید :


static void Main(string[] args)
{
var thread = new Thread(SampleThread);
thread.Start();
Console.WriteLine("asdad");
}

public static void SampleThread()
{
for (var i = 0; i < 100000000; i++)
{
Console.WriteLine(i);
}
}


موفق باشید
ممنون
کد زیر رو من تو رویداد باتن کلیک نوشتم
if (string.IsNullOrEmpty(textBox2.Text.Trim()))
{
MessageBox.Show("عبارت مورد جستجو را وارد کنید");
richTextBoxPrintCtrl1.Text = "";
}
else if (string.IsNullOrEmpty(richTextBox1.Text.Trim()))
{
MessageBox.Show("متنی برای جستجو وجود ندارد");
}
else
{
richTextBoxPrintCtrl1.Text = "";
string asa = @richTextBox1.Text;
StringReader sr = new StringReader(asa);
string line = "";
while ((line = sr.ReadLine()) != null)
{
if (!line.Contains(textBox2.Text))
{
richTextBoxPrintCtrl1.Text += (line + Environment.NewLine);
}
}
}
وقتی تعداد خط زیاد باشه برنامه به کلی هنگ میکنه
از Thread هم استفاده کردم ولی هیچ تغییری ایجاد نشد