PDA

View Full Version : ایجاد تاخیر در برنامه



hosein320
یک شنبه 20 اسفند 1391, 22:20 عصر
سلام
اگه بخوای یه بخش از برنامه زمان بر باشه
و بخوای حتما قبلش یه بخش کد دیگه کامل بار شه
باید چه کار کرد:متفکر::متفکر::متفکر:

mehran901
یک شنبه 20 اسفند 1391, 22:31 عصر
البته من واسه ویبی 6 پیشنهاد این دو روش رو میدم ، شاید راه خاصی در دات نت باشه من بی اطلاعم
1- استفاده از تابع sleep Api
2- خلاقیت !

Dim EndTime As Date
EndTime = DateAdd("s", 2, Now)
Do Until Now > EndTime
DoEvents
Loop

وقفه 2 ثانیه ای !

SHD.NET
یک شنبه 20 اسفند 1391, 22:33 عصر
میتونی از تابع System.threading.thread.sleep(x) هم استفاده کنی که خود ویژوال آماده داره، به جای X زمان رو بر حسب میلی ثانیه وارد کنید .

the king
یک شنبه 20 اسفند 1391, 22:40 عصر
سلام
اگه بخوای یه بخش از برنامه زمان بر باشه
و بخوای حتما قبلش یه بخش کد دیگه کامل بار شه
باید چه کار کرد:متفکر::متفکر::متفکر:

اگه اون بخش کد دیگه در همین Thread فعلی اجرا میشه، هیچ کاری لازم نیست بکنید. یک Thread در هر لحظه بیش از یک کد رو اجرا نمی کنه،
اگه الان داره کد های این بخش رو اجرا می کنه پس حتما کد هایی که قبلا قرار بوده اجرا کنه رو تا انتها اجرا کرده، جز این ممکن نیست.

اما اگه اون بخش دیگه کد در یک Thread مجزا داره اجرا میشه، یک شیء از نوع Object یک جایی که همه کد ها بهش دسترسی دارند بسازید و
SyncLock اش کنید. تا زمانی که کد قبلی از داخل بلوک SyncLock در نیومده و اجراش تموم نشده، هیچ جای دیگه از برنامه تون کدی نمی تونه
داخل بلوک SyncLock بشه، بیرون بلوک منتظر می مونه تا اون یکی از بلوک SyncLock بیاد بیرون و این یکی وارد بلوک بشه.

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

Public Class Form1

Public Shared obj As New Object


یا داخل یک ماژول :

Module Module1

Public obj As New Object


و این نمونه دو تا کد، اگر اجرای یکی از این کد ها شروع بشه، دیگری نمی تونه شروع بشه، باید صبر کنه تا اجرای اون یکی تموم بشه :

SyncLock obj
' Your Code 1
End SyncLock



SyncLock obj
' Your Code 2
End SyncLock


اینجور کد ها فقط برای برنامه های Multi Thread ای کاربرد دارند. اگه فقط یک Thread دارید اصلا نیازی به این ها نیست.

behrozi.ir
یک شنبه 20 اسفند 1391, 22:40 عصر
سلام
متد این کار تو دات نت هست
احتیاجی به API های خارجی نیست:لبخند:
اینم وقفش دو ثانیه هستش
Thread.Sleep(2000)

البته این رو هم باید اول برنامه اضافه کنی
Imports System.Threading

بهروزی (http://www.behrozi.ir)