سلام وقت تون بخیر وسال نو رو هم تبریک میگم ممنون که راهنمایی می کنید
من یک برنامه ساده با ترد thread نوشتم
که یک دکه تایمر رو فعال میکنه ویک عدد رو نشون میده
ویکی هم یه ترد که اون هم یک عدد رو جمع می کنه ودر یکه لیبل نشون میده
تایمر درست کار می کنه
ولی ترد نه برنامه هم کمپایل میشه بدون ارور ولی وقتی تردو می زنم هیچی نشون نمیده
کار ساده ای انجام میداد یک عدد رو جمع کنه و هر یک ثانیه به ثانیه اونرو در یک لیبل نشون بده ولی متاسفانه ترد به درستی ا جرانمی شه یعنی کمپایل میشه بدون خطا ولی موقعه ای که بازدن یک دکمه ترود فعال می کنم
یا نمی تونه تابع خودش رو اجرا کنه همه قوانیین رو هم به درستی رعایت می کنم نمی دونم چرا درست کار نمی کنه
دیباگر بیسیک فور اندروید هم ارور نمی ده و لی وارنینگ میده که ترد و اینیشیالایز نکردی درحالی که این کار را انجام دادم
Main - 35: Variable 'thread1' was not initialized. (warning #11)
Main - 63: Sub 'Count' is not used. (warning #12)
Main - 69: Sub 'show' is not used. (warning #12)
برنامه بدون هیچ اروری کمپایل میشه ولی موقعی که بازدن یک دکمه ترودو فعال میکنم نمی تونه عدد رو در لیبل به نمایش دربیاره یا هنگ می کنه
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Dim timr1 As Timer
Dim counter As Int
End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Private btnTimer As Button 'دکه ای که تایمر رو راه اندازی میکنه
Private lblTmer As Label 'لیبلی که هر یک ثانیه یک عدد رو تایمر روش کپی میکنه
Private btnThread As Button 'دکمه ای که تردو راه اندازی میکنه
Private lblThread As Label 'لیبلی که ترد ازش برای نمایش اعداد استفاده می کنه
'-------------------------
Dim thread1 As Thread معرفی کردم
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("frm1")
timr1.Initialize("timer1",1000)
thread1.Initialise("th") مقدار دهی کردم
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub btnTimer_Click
timr1.Enabled=True
End Sub
Sub btnThread_Click
thread1.Start(Me,"Count",Null) استارت کردم
End Sub
Sub Count این اجرا نمی شه نمیدنم چرا اشکم دراورده
For i=1 To 100
thread1.RunOnGuiThread("show",Array As Object(i))
thread1.Sleep(1000)
Next
End Sub
Sub show(index As Object) اینم اجرا نمیشه نمیدونم چیکار کنم
lblThread.Text=index
End Sub
Sub timer1_Tick
counter=counter+1
lblTmer.Text=counter
End Sub
Sub btnExit_Click
Activity.Finish
End Sub
سوال
232323مهدی 0
سلام وقت تون بخیر وسال نو رو هم تبریک میگم ممنون که راهنمایی می کنید
من یک برنامه ساده با ترد thread نوشتم
که یک دکه تایمر رو فعال میکنه ویک عدد رو نشون میده
ویکی هم یه ترد که اون هم یک عدد رو جمع می کنه ودر یکه لیبل نشون میده
تایمر درست کار می کنه
ولی ترد نه برنامه هم کمپایل میشه بدون ارور ولی وقتی تردو می زنم هیچی نشون نمیده
کار ساده ای انجام میداد یک عدد رو جمع کنه و هر یک ثانیه به ثانیه اونرو در یک لیبل نشون بده ولی متاسفانه ترد به درستی ا جرانمی شه یعنی کمپایل میشه بدون خطا ولی موقعه ای که بازدن یک دکمه ترود فعال می کنم
یا نمی تونه تابع خودش رو اجرا کنه همه قوانیین رو هم به درستی رعایت می کنم نمی دونم چرا درست کار نمی کنه
دیباگر بیسیک فور اندروید هم ارور نمی ده و لی وارنینگ میده که ترد و اینیشیالایز نکردی درحالی که این کار را انجام دادم
Main - 35: Variable 'thread1' was not initialized. (warning #11)
Main - 63: Sub 'Count' is not used. (warning #12)
Main - 69: Sub 'show' is not used. (warning #12)
----------------------------------------------------------------------------
برنامه بدون هیچ اروری کمپایل میشه ولی موقعی که بازدن یک دکمه ترودو فعال میکنم نمی تونه عدد رو در لیبل به نمایش دربیاره یا هنگ می کنه
Sub Process_Globals 'These global variables will be declared once when the application starts. 'These variables can be accessed from all modules. Dim timr1 As Timer Dim counter As Int End Sub Sub Globals 'These global variables will be redeclared each time the activity is created. 'These variables can only be accessed from this module. Private btnTimer As Button 'دکه ای که تایمر رو راه اندازی میکنه Private lblTmer As Label 'لیبلی که هر یک ثانیه یک عدد رو تایمر روش کپی میکنه Private btnThread As Button 'دکمه ای که تردو راه اندازی میکنه Private lblThread As Label 'لیبلی که ترد ازش برای نمایش اعداد استفاده می کنه '------------------------- Dim thread1 As Thread معرفی کردم End Sub Sub Activity_Create(FirstTime As Boolean) Activity.LoadLayout("frm1") timr1.Initialize("timer1",1000) thread1.Initialise("th") مقدار دهی کردم End Sub Sub Activity_Resume End Sub Sub Activity_Pause (UserClosed As Boolean) End Sub Sub btnTimer_Click timr1.Enabled=True End Sub Sub btnThread_Click thread1.Start(Me,"Count",Null) استارت کردم End Sub Sub Count این اجرا نمی شه نمیدنم چرا اشکم دراورده For i=1 To 100 thread1.RunOnGuiThread("show",Array As Object(i)) thread1.Sleep(1000) Next End Sub Sub show(index As Object) اینم اجرا نمیشه نمیدونم چیکار کنم lblThread.Text=index End Sub Sub timer1_Tick counter=counter+1 lblTmer.Text=counter End Sub Sub btnExit_Click Activity.Finish End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر
7 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.