ورود

نسخه کامل مشاهده نسخه کامل : Cross-thread operation not valid در ايجاد event



Reza_mostafavi63
07-05-2011, 12:53
با سلام به دوستان مشكل من در ايجاد يك event براي كلاسي هست كه طراحي كردم . تنها چيزي هم كه ميخوام اينه كه به صورت عادي (مثل event هاي Button , Timer , TextBox, ...) باهاش تو برنامه كار كنم . ولي نميدونم اشكال كدم كجاس
كدها به صورت زير تعريف شده اند :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



اينم كد فرم اصلي :




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


متاسفانه در هنگام اجرا با خطاي Cross-thread operation not valid: Control '' accessed from a thread other than the thread it was created on. مواجه ميشم .


چرا نميتونم عين كامپوننت هاي ديگه از Event تش استفاده كنم ؟؟؟؟؟؟؟؟؟؟؟؟؟؟:2:

Mer28+2

Open-Source
07-05-2011, 15:01
پیغام خطاش کاملا واضح هستش.
شما یه آبجکت رو توی یه ترد (ترد اصلی) دارید و میخواید توی یه ترد دیگه (که توی کلاس تعریف کردی) استفاده کنید که با خطا مواجه میشد.
برای رفع این مشکل باید از خصوصیت invokerequard (البته درست یادم نیست) از آبجکتتون استفاده کنید.

(الان Net. دم دستم نیست که تست کنم:13:)

Reza_mostafavi63
07-05-2011, 17:59
برای رفع این مشکل باید از خصوصیت invokerequard (البته درست یادم نیست) از آبجکتتون استفاده کنید.


روشي كه شما ميگيد فكر كنم اين باشه :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اين كار رو نميتونم انجام بدم چون اين Invoke فقط روي Control ها تعريف شده .

در هر حال مشكل من با خط زير بر طرف شد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

فقط نميدونم خود دات نت از چه روشي استفاده ميكنه . كه كلاس هاش بدون مشكل ميتونن با كنترل اصلي كار كنن . مثل Timer

Open-Source
07-05-2011, 18:17
روشي كه شما ميگيد فكر كنم اين باشه :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اين كار رو نميتونم انجام بدم چون اين Invoke فقط روي Control ها تعريف شده .

در هر حال مشكل من با خط زير بر طرف شد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

فقط نميدونم خود دات نت از چه روشي استفاده ميكنه . كه كلاس هاش بدون مشكل ميتونن با كنترل اصلي كار كنن . مثل Timer

این روش ، فکر نکنم روش مناسبی باشه.
بازم یه سرچی توی MSDN بزن.
من فردا این رو تست میکنم اگه به نتیجه رسیدم اینجا قرار میدم.

موفق باشی...:10: