ورود

View Full Version : ایجاد وقفه در main thread بدون تاثیر گذاری روی کد های قبلی ؟



vahid_barnamenevis
یک شنبه 22 آذر 1394, 16:30 عصر
ایجاد وقفه در main thread بدون تاثیر گذاری روی کد های قبلی ؟


با سلام چطور میشه در ترد اصلی برنامه یا همان main thread وقفه ایجاد کرد، بدون اینکه روی زمان اجرای کد های قبلی تاثیر بزاره؟
چون همانطور که میدونید کد Thread.sleep(); علاوه بر تاثیر روی کدهای بعد از خود روی کدهای قبل از خودش هم تاثیر میزاره.



با تشکر از راهنمایی تون/

توضیح بیشتر : من چند تا چراغ توی UI دارم که میخوام به ترتیب و با فاصله 50 میلی ثانیه از هم دیگه روشن بشن و همچنین میخوام کدهای بعدی هم بعد از اتمام روشن شدن همه چراغ ها اجرا بشن و نه همزمان با آنها .

msroid
سه شنبه 24 آذر 1394, 18:00 عصر
تا الان ندیدم کسی بخواد تو main thread وقفه ایجاد کنه و درست و منطقی هم نیست. شما باید تا جایی که میتونی سعی کنی هیچ گونه وقفه ای در main thread نباشه بعد حالا خودت میخوای وقفه بندازی...!!
یه روش اینه که شما یه thread جدا در نظر بگیری و یه متغیر عمومی مثلا از نوع boolean در نظر بگیری و توی اون thread وقتی همه چراغ ها روشن شدن مقدار اون رو true کنین و با استفاده از این مقدار کدهای بعدی رو حتی تو یه thread دیگه اجرا کنین.

ho3ein.3ven
سه شنبه 24 آذر 1394, 18:15 عصر
خب از تایمر استفاده کن

vahid_barnamenevis
جمعه 27 آذر 1394, 19:01 عصر
با استفاده از threading و handler و متد postDelayed تونستم یه جورایی حلش کنم .

یه آرایه از thread ها و یه آرایه از handler ها تعریف کردم و تو متد postDelayed وقفه 50 میلی ثانیه دادم و ترد رو توی حلقه for گذاشتم و بار آخری که for اجرا میشه کدهای بعد thread که داخل یه متد گذاشتم اجرا میشن . والسلام