تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 3 از 3

نام تاپيک: سؤال راجع به thread

  1. #1
    داره خودمونی میشه CG_'s Avatar
    تاريخ عضويت
    May 2008
    پست ها
    96

    پيش فرض سؤال راجع به thread

    این thread که می گن رو میشه بیشتر توضیح بدین؟ متد sleep اینا هم که می گن بگین لطفاٌ.

    بعد تو msdn هم رفتم گشتم، مثال هم داشتاااا، اما چیزی دستگیرم نشد. مرسی

  2. #2
    حـــــرفـه ای Ultimator's Avatar
    تاريخ عضويت
    May 2007
    محل سكونت
    NetFrameWork.
    پست ها
    3,239

    پيش فرض

    حتما میدونید thread ( ریسمان ) چیه و به چه دردی میخوره . خب برای انجام چند عمل موازی به کار میره اگه چند ریسمانی نبود سیستم عامل میشد داس اگه یه نگاه به تب performance در تسک منیجر بندازین تعداد ریسمان های جاری که توسط cpu در حال پردازشند رو میبینید . ( الان 429 ریسمون تو سیستم من داره اجرا میشه ) .
    اگه شما فرضا یه عملیات سنگین دارین که با متد process() اجرا میشه و این عملیات چند ثانیه طول میکشه ( میشه اینو شبیه سازی کرد که تو ادامه میگم ) تا این عملیات انجام نشه و کامل نشه ریسمان جاری قفل میمونه و هیچ چیز دیگه ای تو برناممون نمیتونه از اون ریسمان استفاده کنه . کد زیر رو در نظر بگیرید :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    متد سنگین پروسس که مثلا 5 ثانیه طول میکشه 5ثانیه ui برنامه رو قفل میکنه و حتی برنامه به خط بعد نمیره .
    اگه ما نخوایم اینطور بشه باید اجرای متد وقت گیر رو به یه ریسمان جدید بسپاریم
    اینطوری
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    با متد start اون ریسمان جدید رو شروع میکنیم که اون process رو اجرا میکنه
    کامپوننت background worker هم همین کار رو میکنه

    حالا برای تست فرض کنید یه متد سنگین داریم که 5 ثانیه طول میکشه :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    این کد ریسمان جاری رو متوقف میکنه . یکی از کاربردهاش همین تست کردنه !! اگه این sleep رو تو همون ریسمان صدا بزنی 5 ثانیه بعد متن لیبل عوض میشه اما اگه یه ریسمان جدید ایجاد کنیم همون لحظه برنامه به خط بعد میره و کد بعدی اجرا میشه .
    البته محدودیت هایی هم وجود داره مثلا از ریسمان جدید ( یعنی از داخل متد process ) نمیتونیم متن لیبل بیرون از ریسمان رو تغییر بدیم چون اون لیبل تو یه ریسمان دیگه تعریف شده و برنامه منجر به استثنا میشه .
    حالا میتونید برای توضیحات بیشتر به همون تاپیک مراجعه کنید تا کاملتر یاد بگیرید . من در هد سوادم درخدمتم .

  3. #3
    داره خودمونی میشه CG_'s Avatar
    تاريخ عضويت
    May 2008
    پست ها
    96

    پيش فرض

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    این کد ریسمان جاری رو متوقف میکنه . یکی از کاربردهاش همین تست کردنه !! اگه این sleep رو تو همون ریسمان صدا بزنی 5 ثانیه بعد متن لیبل عوض میشه اما اگه یه ریسمان جدید ایجاد کنیم همون لحظه برنامه به خط بعد میره و کد بعدی اجرا میشه .
    البته محدودیت هایی هم وجود داره مثلا از ریسمان جدید ( یعنی از داخل متد process ) نمیتونیم متن لیبل بیرون از ریسمان رو تغییر بدیم چون اون لیبل تو یه ریسمان دیگه تعریف شده و برنامه منجر به استثنا میشه .
    حالا میتونید برای توضیحات بیشتر به همون تاپیک مراجعه کنید تا کاملتر یاد بگیرید . من در هد سوادم درخدمتم .
    این از اینجا به بعدشو بیشتر توضیح بدید لطفاً.
    منظورم اینه که وقتی میگیم 5000 میلی ثانیه sleep کنه، یعنی فعلاً 5 ثانیه وایسه؟ بعد بقیشو بره؟ اون وقت وقتی 5 ثانیش تموم شد دیگه اون حلقه یا process ـه که فقط اجرا میشه (منظورم اینه که مثل حالت عادیش و بدون thread میشه)؟

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •