PDA

View Full Version : ساخت thread برای کل پروژه



Yanehsar
جمعه 10 آبان 1392, 18:19 عصر
سلام
یه سوال دارم آیا میشه برای پروژه thread نوشت که در طول زمان اجرای پروژه thread هم چک بشه ؟ ؟

s.hoseinpoor
جمعه 10 آبان 1392, 18:31 عصر
لطفا واضحتر بیان کنین
برای ترد جاری میشه Thread.CurrentThread استفاده کرد

hafez_ka
جمعه 10 آبان 1392, 18:34 عصر
thread ای که شروع می شه تا بسته نشه تا پایان برنامه باز می مونه.
کاری اصلی ترید اینکه به صورت backgroundworker هستش و همچنین در طول برنامه بازه

Yanehsar
جمعه 10 آبان 1392, 19:08 عصر
ها میشه
حتی میشه برای هر تابعی که تو برنامت هست یک ترد راه بندازی
تو سایت یک پنجاه تایی تاپیک راجبه Thread هست بیشین همشو بوخون:لبخند:
کلمه Thread رو سرچ کن:لبخند:
بله می دونم هستش اما تمام Thread برای زمانی هستش که می خواهیم یه کاری مثله خروجی گرفتن یا لود اطلاعات و.. هستش و مربوط به یک فرم میشه سوال من اینه میشه کاری که از شروع اولین فرم(شروع برنامه) این ترد کارشو شروع کنه ؟ و تا زمانی که برنامه Run هستش متغییرها ، سریال ها ، صحت برنامه فعال شده و هرکاری که بخواهیم را چک کنه ؟

Yanehsar
جمعه 10 آبان 1392, 19:27 عصر
بله این تردی که ایجاد میشه برای برنامه همه ی این کار ها رو می تونه انجام بده ولی به ترتیب و پشت سر هم
ولی اگر یک جایی لازم شد می تونید از 2 ترد هم استفاده کنید
کجا باید تعریف کنم ؟داخل اولین صفحه ؟وقتی صفحه ام بسته میشه تردم هم خاتمه پیدا می کنه ؟یا ادامه داره ؟
دلیل سوالم کلاس Program.cs بودش داخل این کلاس میشه ترد تعریف کرد ؟مزایا داره یا معایب ؟اصلا میشه تو این کلاس دست برد یا نه ؟

habibb
جمعه 10 آبان 1392, 19:33 عصر
[STAThread] اینو نباید دستش زد
در Program.cs
معمولا متدهایی که بار پردازشی زیادی دارند موجب کندی برنامه میشن
برای جلوگیری از این کار میشه این متد هارو با استفاده از یک Thread متفاوت از Thread اصلی برنامه فراخوانی کرد.


using System.Threading;

فرض کنیم این متد رو داریم :


void DoSomething(){}

تعریف Thread جدید برای متد مورد نظر :


Thread myThread = new Thread(new ThreadStart(this.DoSomthing));

فراخوانی متد با استفاده از متد تعریف شده‌:


myThread.Start();

برای متوقف کردن Thread‌ایجاد شده :


myThread.Abort();