رفتن به مطلب
  • 0

thrrading


232323مهدی

سوال

سلام وقت تون بخیر وسال نو رو هم تبریک میگم ممنون که راهنمایی می کنید

من یک برنامه ساده با ترد 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 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

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

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 21 فروردین 1399 در 14:28، mohammad3250 گفته است :

ترد ها روی حالت دیباگ کار نمیکنه چند بار کد هارو عوض کردم هیچی ولی وقتی کامپایل میشه مشکلی نداره

با تشکر از مدیریت محترم سایت و دوستانی که سعی کردند کمک کنند

بلاخره فهمیدم چرا ترد لعنتی کار نمی کنه حق با این دوسته مون برنامه رو از حالت دیباگ بردم روی حالت ریلیز ترد شروع کرد به درست کار کردن انقدر خشحال شدم چسبید م به سقف درود بر این سایت خوب و شما خوبان

علت اینکه مهم شد این قضیه این بود که من یه رباط درست کردم که اطلاعات را با مبایل ردوبدل میکنه اگر ازترد استفاده نکنم قفل می کنه ممنون .

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 1 ساعت قبل، 232323مهدی گفته است :

 

روی شبیه ساز تست میکنید یا دیوایس واقعی؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ترد ها روی حالت دیباگ کار نمیکنه چند بار کد هارو عوض کردم هیچی ولی وقتی کامپایل میشه مشکلی نداره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 6 ساعت قبل، 232323مهدی گفته است :

 

 

سلام. دوست عزیز سعی کنید کدهاتونو توی تگ کد بزارید الان سوالتون واقعا خوندنش خیلی سخته. مرتب بنویسید که دوستان برای خوندنش اذیت نشن. کدهاتونو یه سری ویرایشای کوچیک کردم و الان موردی نداشت تست کردم و اکی بود. سورس زیر رو تست کنید.

thred.zip

لینک ارسال
به اشتراک گذاری در سایت های دیگر

On 1 فروردین 1399 at 11:00 PM, محمدرضا شاهپیری said:

سلام. دوست عزیز سعی کنید کدهاتونو توی تگ کد بزارید الان سوالتون واقعا خوندنش خیلی سخته. مرتب بنویسید که دوستان برای خوندنش اذیت نشن. کدهاتونو یه سری ویرایشای کوچیک کردم و الان موردی نداشت تست کردم و اکی بود. سورس زیر رو تست کنید.

thred.zip 3.83 kB · 4 downloads

با تشکر خیل زیاد از مدیریت محترم و بقیه دوستان

از اینکه برنامه رو با زحمت خوندید و یکی دیگرو برای من فرستادید بسیار تشکر می کنم 

ناراحتیه من اینه که چرا در کامپیوتر شما بدون هیچ مشکلی اچرا میشه ولی درکامپیوتر من هیچ اتفاقی نمی افته 

من برنامه ای که شما برای من فرستادید رو دانلود کردم وخیلی خوشحال شدم گفتم الان بلاخره این ترد را افتاد اما 

وقتی برنامرو اجراکردم وروی دکمه ترد کلید کردم هیچ عکس العملی اتفاق نیافتاد

نمیدونم چرا توکامپیوتر شما ترد خوب کار می کنه ولی توکامپیوتر من کار نمیکنه درحالی که توهیچ برنامه دیگه ای مشکل نداره فقط تو این ترد مشکل داره احرا می شه ولی درست کار نمی کنه

مممنون می شم راهنمایی کنید

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام وقت بخیر

مثل این که thread  ها داخل حالت دیباگ کار نمی کنند و اگر پردازش هم خیلی سنگین باشه داخل گوشی یا شبیه ساز کم منابع به خوبی کار نمی کنه

این موارد هم برسی کنید شاید به کارتون امد

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...