لزوم استفاده از Application.DoEvents() در VB.Net
سلام دوستان
برنامه ای رو در ویژوال بیسیک 6 نوشتم و حالا اونو تبدیل کردم به ویژوال بیسیک دات نت . . .
اختلافی که وجود داشت این بود که من برای اینکه کاربر متوجه روند پیشرفت برنامه بشه کپشن یک Label رو مدام عوض میکردم تا کاربر متوجه بشه که برنامه در حال انجام چه کاری هست
همون کار رو هم در دات نت انجام دادم وقتی اینقدر سریع عملیات انجام میشد که فرصتی برای تغییر کپشن Label نبود مجبور شدم مدام از Application.DoEvents() استفاده کنم تا برنامه فرصت کنه این تغییر رو نمایش بده . . .
ضمن اینکه سرعت برنامه با دات نت خیلی بیشتر از ویژوال بیسیک 6 بود . . .
میخواستم دلیل این اتفاق رو بپرسم ؟
ممنون
نقل قول: لزوم استفاده از Application.DoEvents() در VB.Net
بهترین کار برای نحوه پیشرفت برنامه استفاده از ترد هستش...که بحث زیادی در موردش شده جستجو کنید
در مورد اتفاقی هم که گفتید بایستی کدتون رو بزارید تا بررسی کنیم
نقل قول: لزوم استفاده از Application.DoEvents() در VB.Net
نقل قول:
نوشته شده توسط
samiasoft
بهترین کار برای نحوه پیشرفت برنامه استفاده از ترد هستش...که بحث زیادی در موردش شده جستجو کنید
در مورد اتفاقی هم که گفتید بایستی کدتون رو بزارید تا بررسی کنیم
راستش در مورد ترد هیچی نمیدونم . . . چی باید سرچ کنم تا راجع بهش اطلاعاتی پیدا کنم . . .
اما الان مشکل من این کد ساده هست که اونطوری که انتظار دارم کار نمیکنه . . .
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim i As Integer
Button1.Text = "Test Progress Bar"
ProgressBar1.Minimum = 0
ProgressBar1.Maximum = 10000
Button1.Text = "Wait . . . "
'Application.DoEvents()
For i = 1 To 10000
ProgressBar1.Value = i
Next
Button1.Text = "Test Progress Bar"
End Sub
End Class
تو این کد انتظارم هست تا زمانی که حلقه داره تکرار میشه متن باتن بشه Wait . . . بعد دوباره به حالت اول برگرده که به درستی نمایش داده نمیشه . . .
1 ضمیمه
نقل قول: لزوم استفاده از Application.DoEvents() در VB.Net
نقل قول: لزوم استفاده از Application.DoEvents() در VB.Net
نقل قول:
نوشته شده توسط
محمد آشتیانی
سلام
این نمونه رو ببینید
مرسی دوست عزیز :تشویق: . . . کد خوبی بود ولی نسبت به اون کد ساده ای که تو VB.6 نوشتم یه مفاهیم جدیدی داشت که باید روش کار کنم . . . (البته تو این نمونه هم وقتی ProgressBar به حدود 80% میرسید متن به حالت اول برمیگشت . . . انگار ProgressBar کند عمل میکرد . . . )
ممنون بابت راهنمایی :لبخندساده:
نقل قول: لزوم استفاده از Application.DoEvents() در VB.Net
نقل قول:
نوشته شده توسط
vb.civil
مرسی دوست عزیز :تشویق: . . . کد خوبی بود ولی نسبت به اون کد ساده ای که تو VB.6 نوشتم یه مفاهیم جدیدی داشت که باید روش کار کنم . . . (البته تو این نمونه هم وقتی ProgressBar به حدود 80% میرسید متن به حالت اول برمیگشت . . . انگار ProgressBar کند عمل میکرد . . . )
ممنون بابت راهنمایی :لبخندساده:
سلام
کد کاملا درست عمل میکنه و دقیقا وقتی حلقه تموم میشه ، تکست دکمه هم عوض میشه ، اون تاخیر پراگرس بار مربوط به خودشه و ماهیتش اینجوریه و کاریش نمیشه کرد.
موفق باشید