PDA

View Full Version : توقف در برنامه تا زمان معین و یا دریافت کاراکتر معین



مهیار.
دوشنبه 01 تیر 1394, 05:28 صبح
با سلام به دوستان امیدوارم طاعاتتون قبول باشه
میخواستم تو محیط کنسول در برنامه توقف ایجاد کنم مثلا 30 ثانیه .. و در صورت عدم وارد شدن متن یا رشته ای ادامه برنامه اجرا بشه و در صورت وارد شدن جزء دیگری از برنامه اجرا بشه
به عبارت دیگر در صورتی که این 30 ثانیه بگزره و هیچ متنی وارد نشه متد A اجرا بشه و اگر در این سی ثانیه متی وارد بشه متد B امیدوارم توضیحات کامل بوده باشه ( دقیقا مانند زمانی که ویندوز زمان بالا امدن مقدار چند ثانیه توقف داره و عدم دریافت گزینه مورد پیش فرض خود رو اجرا و ادامه میدهد ..)

jeson_park
دوشنبه 01 تیر 1394, 08:37 صبح
سلام
این کد رو امتحان کنید

ConsoleKeyInfo cki;

do {
Console.WriteLine("\nPress Any Key");

// call Method A() here

while (Console.KeyAvailable == false)
Thread.Sleep(30000); // Loop until input is entered.
cki = Console.ReadKey(true);
Console.WriteLine("You pressed the '{0}' key.", cki.Key);
} while(Console.ReadKey(true));
}

alireza264
دوشنبه 01 تیر 1394, 09:12 صبح
سلام
این کد رو امتحان کنید

ConsoleKeyInfo cki;

do {
Console.WriteLine("\nPress Any Key");

// call Method A() here

while (Console.KeyAvailable == false)
Thread.Sleep(30000); // Loop until input is entered.
cki = Console.ReadKey(true);
Console.WriteLine("You pressed the '{0}' key.", cki.Key);
} while(Console.ReadKey(true));
}


سلام
کد بالا باعث توقف کل برنامه میشه و نمیشه کاراکتری وارد کرد. بنظرم بهتره از یه تایمر 30 ثانیه ای استفاده کنی اگه فرد کارکتر مورد نظر رو اجرا وارد کرد تایمر خاموش بشه و اگه زمان تایمر سپری شد بازم تایمر خاموش بشه و روال درخواستی اجرا بشه


Timer timer1 = new Timer();

timer1.Enabled = true;
timer1.Interval = 30000;
timer1.Tick += new EventHandler(timer1_Tick);


private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
MyRoutin();
}

مهیار.
پنج شنبه 04 تیر 1394, 18:26 عصر
سلام
این کد رو امتحان کنید

ConsoleKeyInfo cki;

do {
Console.WriteLine("\nPress Any Key");

// call Method A() here

while (Console.KeyAvailable == false)
Thread.Sleep(30000); // Loop until input is entered.
cki = Console.ReadKey(true);
Console.WriteLine("You pressed the '{0}' key.", cki.Key);
} while(Console.ReadKey(true));
}


با سلام
من این کد رو امتحان کردم خطا میده تو این خط :
} while(Console.ReadKey(true));

مهیار.
جمعه 05 تیر 1394, 01:56 صبح
سلام
کد بالا باعث توقف کل برنامه میشه و نمیشه کاراکتری وارد کرد. بنظرم بهتره از یه تایمر 30 ثانیه ای استفاده کنی اگه فرد کارکتر مورد نظر رو اجرا وارد کرد تایمر خاموش بشه و اگه زمان تایمر سپری شد بازم تایمر خاموش بشه و روال درخواستی اجرا بشه


Timer timer1 = new Timer();

timer1.Enabled = true;
timer1.Interval = 30000;
timer1.Tick += new EventHandler(timer1_Tick);


private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
MyRoutin();
}


این هم اینجا خطا میگیره :

132602