پیغام خطا در حلقه

loo30fer

کاربر متخصص مولتی مدیا بیلدر
با سلام
من وقتی یک Threads ایجاد میکنم و و این کد رو بهش میدم بعد از مثلا 600 باز دور زدن این پیغام رو میده و وقتی تایید میکنم باز بعد از همون تعداد دور زدن باز پیغام میده میشه بگین مشکل از چیه و چیکار باید کرد ؟
پیغام:
کد:
Canvas does not allow drawing
کد:
For (#i=1,1376000)
  Obj("Text1","Form1").Text(#i)
End
 

JavidX

Apadana Developer
با سلام
من وقتی یک Threads ایجاد میکنم و و این کد رو بهش میدم بعد از مثلا 600 باز دور زدن این پیغام رو میده و وقتی تایید میکنم باز بعد از همون تعداد دور زدن باز پیغام میده میشه بگین مشکل از چیه و چیکار باید کرد ؟
پیغام:
کد:
Canvas does not allow drawing
کد:
For (#i=1,1376000)
  Obj("Text1","Form1").Text(#i)
End
سلام
اولا اینکه همیشه اینجوری بوده که ارتباط مستقیم thread با عناصر ویژوال مشکلاتی ایجاد میکنه و این از نو آوری های آپاداناست که این مشکل رو تا حدودی حل کرده این پیغام هم زیاد مهم نیست فکر کنم دلیلش اینه که thread وقتی دستور تغییر نوشته رو برای فرم اصلی ارسال میکنه تا میاد کار ترسیم اشیاء و ... که توسط نخ اصلی انجام میشه تموم بشه حلقه یه بار عبور کرده و دوباره دستور تغییر نوشته رو میده که همه چی قاطی میشه. پس راه حل توی این قبیل برنامه ها که for توی نخ به کار برده شده و با اشیاء به طور مداوم کار داره اینه که نوشته رو توی یه متغیر بریزید و توی یه تایمر (که توی نخ اصلی قرار میگیره) عملیات نسبت دادن متغیر به نوشته رو انجام بدید. اینجوری سرعت هم میره بالاتر و کار اضافی انجام نمیشه.
موفق باشید
 

جدیدترین ارسال ها

بالا