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

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

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

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

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

با سلام.

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

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

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

با تشکر

دوشنبه, 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;
                   
                }

ارسال پاسخ برای این تاپیک