مشکل استفاده از Thread یا Background Worker برای بارگیری داده ها
من یه جدول در اس کیو ال دارم که تعداد رکوردهاش خیلی بالاست و چون tableadapter رو هم در لود فرم مقدار میدم که داده ها رو بگیره و در gridview نمایش بده خیلی طول میکشه و فرم دیر نشون میده به همین دلیل از background worker استفاده کردم تا فرم نشون بده و در پشت زمینه داده ها لود بشه اما خطا داره ، هر چی sample هم نگاه کردم متوجه نشدم دوستان لطف کنید کمک کنید اگه راه بهتری هم سراغ دارید ممنون میشم ؟؟؟
public OrderFRM()
{
InitializeComponent();
this.backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
try
{
this.ordersTableAdapter.FillByFinancialPeriodFK(th is.oxygenDataSet.Orders, PublicClass.FinancialFK);
}
catch (Exception x)
{
MessageBox.Show(this, x.Message + "\n" + x.StackTrace, x.TargetSite.Name, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
نقل قول: مشکل استفاده از Thread یا Background Worker برای بارگیری داده ها !!
ننوشتین چه خطایی داده ولی احتمالا دلیلش این بوده که از داخل ترد به UI دسترسی ندارید.
نقل قول: مشکل استفاده از Thread یا Background Worker برای بارگیری داده ها !!
نقل قول:
نوشته شده توسط
abbas.oveissi
ننوشتین چه خطایی داده ولی احتمالا دلیلش این بوده که از داخل ترد به UI دسترسی ندارید.
جالب اینه که این خطا رو میده
Exception has been thrown by the target of invocation
و روی line ی که برنامه در program.cs رو اجرا میکنه وا میسته
البته اگه جزئیات بیشتری مورد نیازه تو سایت stackowerflow هم گذاشتم
http://stackoverflow.com/questions/2...08549_26085363
لطفا اگه نمونه کدی که این کار رو انجام بده دارید به اشتراک بزارید ممنون میشم کارم واقعا گیره !!
نقل قول: مشکل استفاده از Thread یا Background Worker برای بارگیری داده ها
من دقیقا کد مشابه شما را نوشته ام و فقط
backgroundWorker1.RunWorkerAsync();
را در رویداد لود فرم گذاشته بودم ولی کامبوباکس از اطلاعات لود شده پر نمی شد.
در لینک زیر یک راه حل و فایل پروژه قرار داده شده است
http://arsalantamiz.blogspot.ca/2008...ing-using.html
در مثال موجود در لینک ارائه شده ، با استفاده از متد ResetBindings در رویداد RunWorkerComplete مشکل حل شده که من در این متد کدهای زیر را نوشتم و مشکل حل شد
[CSHARP] comboBox1.DataSource = fDBDataSet.Users;
comboBox1.DisplayMember = "username";
comboBox1.ValueMember = "userid";
/CSHARP]
نقل قول: مشکل استفاده از Thread یا Background Worker برای بارگیری داده ها