PDA

View Full Version : چگونگی اجرای دو تابع به صورت همزمان



هم دانشگاهی
پنج شنبه 28 شهریور 1392, 12:52 عصر
سلام
چطوری میشه کاری کرد دو تابع به صورت همزمان اجرا بشن؟

ممنون

m_ali_gho
پنج شنبه 28 شهریور 1392, 13:00 عصر
میتونی با استفاده از thread ها انجام بدی.
اینهایی که میخوای هم زمان اجرا بشن رو خودت نوشتی یا از متدهای خود vs هستن؟

هم دانشگاهی
پنج شنبه 28 شهریور 1392, 13:24 عصر
توابع رو خودم نوشتم، در واقع میخوام یکیش همیشه اجرا بشه و اون یکی دیگه هر 1 ثانیه اجرا بشه . . .

باید چه کار کنم؟

m_ali_gho
پنج شنبه 28 شهریور 1392, 13:41 عصر
اونی که میخوای همیشه اجرا بشه رو بزارش تو backgroundworker تو یه حلقه همیشه درست تا همیشه اجرا بشه. اونی هم که هر 1 ثانیه میخوای اجرا بشه رو بزارش تو یه timer و interval تایمر رو هم بزار رو 1000 تا هر یه ثانیه اجراش کنه

هم دانشگاهی
پنج شنبه 28 شهریور 1392, 13:44 عصر
من تا به حال این جوری کار نکردم، میشه یه شبه کد بزارین یا هم یه لینک آموزشی بدین؟

m_ali_gho
پنج شنبه 28 شهریور 1392, 13:46 عصر
با کدوم کار نکردی؟ thread یا timer یا هردو؟

هم دانشگاهی
پنج شنبه 28 شهریور 1392, 13:52 عصر
با هر دو کار نکردم . . .

m_ali_gho
پنج شنبه 28 شهریور 1392, 14:04 عصر
private void Form0_Load(object sender, EventArgs e)
{
backgroundWorker1.WorkerSupportsCancellation = true;
timer1.Interval = 1000;
//کاری که بالا انجام میشه رو میتونی بدون کد نویسی هم انجام بدی. از تو properties
}

private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();//استارت backgroundworker
timer1.Enabled = true;//استارت timer
}

private void button2_Click(object sender, EventArgs e)
{
backgroundWorker1.CancelAsync();//توقف backgroundworker
timer1.Enabled = false;//توقف تایمر
}

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
while (true)
{
//نام تابع یا کدهایی که میخوای همیشه اجراشون کنی
}
}

private void timer1_Tick(object sender, EventArgs e)
{
//نام تابع یا کدهایی که میخوای هر یک ثانیه اجرا بشن
}