مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

ofoghcomputer

عضویت از 1393/07/15

پیغام در هنگام استفاده از backgroundworker

  • یکشنبه 12 مرداد 1399
  • 10:02
تشکر میکنم

با سلام.

در هنگام استفاده از backgroundworker پیغام زیر می آید:

Cross-thread operation not valid: Control 'CbStokName' accessed from a thread other than the thread it was created on.'

لطفا راهنمایی نمایید

با تشکر

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

محمد رضا

عضویت از 1392/03/21

  • دوشنبه 13 مرداد 1399
  • 22:56

این مشکل زمانی بوجود میاد که یه کنترلی رو می خواین داخل بکگراند ورکر تغییر بدین

برای این کار یه روش دم دستی ولی غیر اصولی وجود داره که کدش اینه

 CheckForIllegalCrossThreadCalls = false;

میاد کنترل نخ ها رو غیر فعال می کنه

روش اصلولی اینه

if (InvokeRequired)
                {
                    BeginInvoke((MethodInvoker)delegate {
                        progressBar1.Visible = true; progressBar1.Maximum = dt.Rows.Count;
                       
                    });
                }
                else
                {
                    progressBar1.Visible = true; progressBar1.Maximum = dt.Rows.Count;
                   
                }

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)