PDA

View Full Version : حلقه در تایمر و مشخص شدن زمان سرریزی



elecont89
یک شنبه 17 دی 1391, 09:34 صبح
با سلام به همه دوستان.
ظاهرا تایمر،اولویت را بر اجرای برنامه خود می گذارد تا interval مربوطه.مثلا اگر یک حلقه در تایمر داشته باشیم که دیتا را از پورت سریال بخواند،مداوم آن حلقه اجرا می شود حتی اگر interval هم سپری شده باشد و گاهی اوقات برنامه قفل می شود.چگونه می توان زمان اتمام تایمر را بصورت شرط نقض در حلقه گذاشت؟دستوری که اتمام interval تایمر یا سرریز آن را مشخص کند؟
با تشکر...

gilsoft
یک شنبه 17 دی 1391, 11:10 صبح
چگونه می توان زمان اتمام تایمر را بصورت شرط نقض در حلقه گذاشت؟دستوری که اتمام interval تایمر یا سرریز آن را مشخص کند؟با تشکر...

سلام دوست عزیز

پیشنهاد میدم که : اول حلقه (قبل از حلقه) از کد Timer1.Stop استفاده کن و در آخر حلقه (بعد از حلقه) کد Timer1.Start رو بزار .... احتمالا مشکل تون برطرف میشه :متفکر:

elecont89
دوشنبه 18 دی 1391, 08:21 صبح
سلام عرض شد.ممنون از شما.
دستوراتی رو که گفتین گذاشتم ولی حل نشد.یادمه تو اسمبلی میکروکنترلر 8051 برای تایمرها یه پرچم سرریز داشتیم که وقتی تایمر سرریز می شد،اون فلگ 1 میشد.آیا برای تایمرا تو vb.net هم شبیه این رو داریم؟
..........
راستی نظرتون در مورد اجرای تایمر در یک Thread جداگانه چیه؟این دستورات رو اجرا کردم ولی وسط کار گیر می کنه!!
ممنون میشم اگه راهنمایی کنید.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CheckForIllegalCrossThreadCalls = False
Dim t As New Threading.Timer(New Threading.TimerCallback(AddressOf work), Nothing, 0, 100)
End Sub

Private Sub work()
label1.text = Val(label1.text) + 1
End Sub