PDA

View Full Version : توقف برنامه در يك تابع با كليك روي يك دكمه



حسنی نگو بلا بگو
یک شنبه 01 شهریور 1388, 14:07 عصر
با سلام به دوستان عزيز ،
كسي مي دونه چطور ميشه با فشار يك دكمه تو c#، اجراي دستورات رو در سطري كه در حال اجراي اونه متوقف كرد و با كليك دوباره اجرا از همون سطر ادامه پيدا كنه
ممنون از مهربونيتون
خداحافظ

bill_geits
یک شنبه 01 شهریور 1388, 14:50 عصر
System.Threading.Thread.CurrentThread.Suspend();
System.Threading.Thread.CurrentThread.Resume();


شايد اين كد به كارت بياد .

Reza_Yarahmadi
یک شنبه 01 شهریور 1388, 16:00 عصر
این کار فقط زمانی قابل انجام است که بخوای روند اجرای کدهای نخ (Thread) دیگه ای از برنامه (غیر از نخ اصلی برنامه) رو متوقف کنی. چون زمانی که برنامه فقط از یک نخ استفاده میکنه و وارد بلاکی از کد میشه ، تا زمانی که تمام کدهای بلاک مورد نظر انجام نشه کنترلهای فرم (مثلا دکمه مورد نظر شما) غیر قابل دسترسی هستن.
یه نمونه کد که کاری که میخوای رو شبیه سازی میکنه:

using System.Threading;


Thread t1 = new Thread(Method1);
private void btnStartStop_Click(object sender, EventArgs e)
{
if (t1.ThreadState == System.Threading.ThreadState.Unstarted)
t1.Start();
else
{
if (t1.ThreadState == System.Threading.ThreadState.Running)
t1.Suspend();
else
t1.Resume();
}
}

public static void Method1()
{
while (true)
{
//do some things
}
}
البته احتمالا روشهای دیگه ای هم باید باشه!

حسنی نگو بلا بگو
دوشنبه 02 شهریور 1388, 01:45 صبح
با سلام دوباره، خيلي ازتون ممنونم، مطالب كوتاه و مفيدن ،
فعلا خداحافظ