نمایش نتایج 1 تا 8 از 8

نام تاپیک: خطای Cross-thread operation not valid در استفاده از Backgroundworker

  1. #1

    خطای Cross-thread operation not valid در استفاده از Backgroundworker

    سلام
    دوستان من در برنامم وقتی بک گراند ورکر رو صدا میزنم که توی لیست باکس چیزی بنویسم . این ارور رو میده چرا ؟
    An exception of type 'System.InvalidOperationException' occurred in System.Windows.Forms.dll but was not handled in user code
    Additional information: Cross-thread operation not valid: Control 'lisbox_link' accessed from a thread other than the thread it was created on.


  2. #2
    مدیر بخش آواتار محمد رضا فاتحی
    تاریخ عضویت
    مهر 1387
    محل زندگی
    کهنسالترین موجود زنده در شهر منه
    پست
    1,181

    نقل قول: مشکل با Backgroundworker

    در مورد invoke سرچ کنید

  3. #3
    کاربر دائمی آواتار alibilgats
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    همین حوالی
    پست
    155

    نقل قول: مشکل با Backgroundworker

    سلام دوست عزیز
    تا جایی که من میدونم شما نمیتونی از object هایی که به GUI مربوط میشه توی قسمت DoWork بکگراند ورکر بصورت مستقیم استفاده کنی!
    واسه حل مشکل اول شما بیا یه آرایه تعریف کن و آیتماتو توی اون بریز! بعدش توی متد RunWorkerComplete اونا رو از آرایه بخون و توی ListBox بریز!
    یا اگه نمایش میزان کارکرد کد خیلی برات مهمه از متد ProgressChanged استفاده کن!

  4. #4

    نقل قول: مشکل با Backgroundworker

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

    ListBox.CheckForIllegalCrossThreadCalls = false;

  5. #5
    کاربر دائمی آواتار alibilgats
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    همین حوالی
    پست
    155

    نقل قول: مشکل با Backgroundworker

    سلام دوست عزیز.
    ممنون که جواب سوالتون رو اینجا به اشتراک گذاشتین.
    ظاهرا این کد باعث میشه که در حالت فراخوانی کنترل داخل Thread از بررسی اتصالات همزمان چشم پوشی بشه!
    امروز یه نکته جدید یادگرفتم و خوشحالم

  6. #6

    نقل قول: مشکل با Backgroundworker

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

  7. #7

    نقل قول: مشکل با Backgroundworker

    سلامکد زیر رو جایگزین خطی کن که ارور میده:
    1.

    var act = new Action(() =>
    {
    lisbox_link.Items.Add("sss");
    });
    if (lisbox_link.InvokeRequired)
    lisbox_link.BeginInvoke(act);
    else
    act();

  8. #8
    کاربر دائمی آواتار ebrahim.rayatparvar
    تاریخ عضویت
    آبان 1392
    محل زندگی
    https://www.youtube.com/c/zangclass
    پست
    714

    نقل قول: مشکل با Backgroundworker

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

    ListBox.CheckForIllegalCrossThreadCalls = false;

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

تاپیک های مشابه

  1. خطای Cross-thread operation not valid
    نوشته شده توسط milad.biroonvand در بخش VB.NET
    پاسخ: 1
    آخرین پست: دوشنبه 03 آبان 1395, 11:00 صبح
  2. سوال: Cross Thread Operation not valid
    نوشته شده توسط mmolia در بخش C#‎‎
    پاسخ: 3
    آخرین پست: دوشنبه 15 دی 1393, 23:17 عصر
  3. چرا ارور Cross-thread operation not valid رخ نمیده
    نوشته شده توسط bade saba در بخش C#‎‎
    پاسخ: 11
    آخرین پست: جمعه 02 تیر 1391, 20:24 عصر
  4. Cross-thread operation not valid در ايجاد event
    نوشته شده توسط reza_mostafavi63 در بخش C#‎‎
    پاسخ: 5
    آخرین پست: شنبه 17 اردیبهشت 1390, 19:54 عصر
  5. سوال: Cross-thread operation not valid error
    نوشته شده توسط mehdi_csharp در بخش C#‎‎
    پاسخ: 2
    آخرین پست: سه شنبه 12 بهمن 1389, 20:24 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •