PDA

View Full Version : سوال: چگونگی یک مکث 3 ثانیه ای و اجرای کد ها بعد از اون



NasimBamdad
شنبه 15 تیر 1392, 12:22 عصر
سلام .

من یک متد دارم که از نوع بولین هست . یکسری مقادیر که زمان بر هستند برای چک کردن قفل سخت افزاری و نرم افزاری در اون وجود دارند که یا مقدار true بر می گرداند یا false


private bool CheckOperationSucceded()
{
// Checking HardWare Lock
if (a==1)
{
return true;
}
else
{
return false;
}
}


حالا می خوام بگم که کد زیر رو بعد از 3 ثانیه تاخییر اجرا کن ، یعنی فرم مربوطه اجرا بشه ، 3 ثانیه مکس کنه که یک Progress بار رو به صورت Marquee قرار دادم ، و سپس کد ها اجرا کنه


if (CheckOperationSucceded())
{
Login sch = new Login();
this.Hide();
sch.Show();
}
else
{
MessageBox.Show("تنظیمات شبکه را چک کنید ، صحت قفل سخت افزاری چک شود");
Application.Exit();
Application.ExitThread();
}


به نظر شما این 3 ثانیه تاخییر رو چه طوری انجام بدم ؟

CsharpNevisi
شنبه 15 تیر 1392, 12:52 عصر
این کدهارو تو تایمیر مینویسی ؟؟

danialafshari
شنبه 15 تیر 1392, 12:53 عصر
مکث 3 ثانیه ای
System.Threading.Thread.Sleep(3000);

NasimBamdad
شنبه 15 تیر 1392, 15:13 عصر
نه ، از تایمر استفاده نمی کنم .

یعنی کد هم این طوری بشه ؟


private void Splash_Load(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(3000);

if (CheckOperationSucceded())
{
Login sch = new Login();
this.Hide();
sch.Show();
}
else
{
MessageBox.Show("تنظیمات شبکه را چک کنید ، صحت قفل سخت افزاری چک شود");
Application.Exit();
Application.ExitThread();
}
}

h_assefi
شنبه 15 تیر 1392, 15:52 عصر
System.Threading.Thread.Sleep(3000);


اگه برنامت را روی یک Thread بنویسیش همه برنامت به مدت 3 ثانیه متوقف میشه و قسمتهای دیگه کدت بعد از 3 ثانیه شروع به ادامه کار میکنه

NasimBamdad
یک شنبه 16 تیر 1392, 09:45 صبح
من به Thread ها مسلط نیستم ، میشه یک کمک کوچیک کنی و مثال بزنی؟

barnamenevisjavan
یک شنبه 16 تیر 1392, 09:51 صبح
دوستمون گفت دیگه از این کد استفاده کن
System.Threading.Thread.Sleep(3000);
برنامه 3 ثانیه مکث میکنه

sohil_ww
یک شنبه 16 تیر 1392, 11:04 صبح
چک کردن قفل سخت افزاری و تو 1 ترد جدا بنویس که تو کاره برنامت تداخل ایجاد نمیشه 1 سرچ بزن آموزش تو سایت هست اگه پیدا نکردی بگو خودم برات آپ کنم

CsharpNevisi
یک شنبه 16 تیر 1392, 13:44 عصر
من به Thread ها مسلط نیستم ، میشه یک کمک کوچیک کنی و مثال بزنی؟

ترد ها مانند نخ هایی از برنامه هستند که دستوراتی اجرا میکنند .. !!
خود برنامه به طور پیشفرظ یک ترد دارد و ما کدهامونو تو اون ترد مینویسیم .. !!
برنامه میتونه چندین ترد داشته باشه .. ما وقتی برنامه را ببندیم .. ترد بسته نمیشود و به کار خود ادامه می دهد

نمونه یک thread
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;//این فضا رو اضافه کن

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

public void test()
{
//دستورات
}
Thread a;
private void button1_Click(object sender, EventArgs e)
{
a = new Thread(test);
a.Start();
}
}
}

NasimBamdad
یک شنبه 16 تیر 1392, 15:02 عصر
Method من از نوع بولین هست ، این اررور رو داده


private Thread a;

private void Splash_Load(object sender, EventArgs e)
{
a = new Thread(CheckOperationSucceded);
a.Start();
if (CheckOperationSucceded())
{
Login sch = new Login();
Splash sch2 = new Splash();
;
sch2.Hide();
sch.Show();
}
else
{
MessageBox.Show("تنظیمات شبکه را چک کنید ، صحت قفل سخت افزاری چک شود");
Application.Exit();
Application.ExitThread();
}
}


این طوری نوشتم و ارروش اینه



'bool NoorAutomation.Splash.CheckOperationSucceded()' has the wrong return type

erfan_urchin
یک شنبه 16 تیر 1392, 17:28 عصر
سلام .

حالا می خوام بگم که کد زیر رو بعد از 3 ثانیه تاخییر اجرا کن ، یعنی فرم مربوطه اجرا بشه ، 3 ثانیه مکس کنه که یک Progress بار رو به صورت Marquee قرار دادم ، و سپس کد ها اجرا کنه


if (CheckOperationSucceded())
{
Login sch = new Login();
this.Hide();
sch.Show();
}
else
{
MessageBox.Show("تنظیمات شبکه را چک کنید ، صحت قفل سخت افزاری چک شود");
Application.Exit();
Application.ExitThread();
}


به نظر شما این 3 ثانیه تاخییر رو چه طوری انجام بدم ؟


شما کافیه قبل کدهاتون از Thread استفاده کنید تا بعد یک مکث 3 ثانیه ای کار رو براتون انجام بده
private void Form1_Load(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(3000);
if (CheckOperationSucceded())
{
Login sch = new Login();
this.Hide();
sch.Show();
}
else
{
MessageBox.Show("تنظیمات شبکه را چک کنید ، صحت قفل سخت افزاری چک شود");
Application.Exit();
Application.ExitThread();
}
}