PDA

View Full Version : مشکل در استفاده از BackGroundWorKer



Sir-Programmer
جمعه 15 شهریور 1392, 14:41 عصر
سلام , من میخوام یه فایلو از رو سرور بخونم یه فایل متنی برای خواندن فایل از رو سرور وقتی رو دکمه Get کلیک میکنم برنامه چندثانیه هنگ میکنه رفتم از BackGround Worker استفاده کردم و دیگه برنامه هنگ نمیکنه حالا میخوام وقتی برنامه خواست فایلو بخونه و فایلم حذف شده باشه بیام و تو برنامه یه لیبل بزارم و وقتی برنامه فایل رو سرورو پیدا نکرد لیبلم تغییر کنه به خطا ! خب برنامه رو اجرا میکنم چند ثانیه صبر میکنم برنامه ارور میده :


Exception has been thrown by the target of an invocation.

مشکل کجاست اینم از کد من :


BackgroundWorker bgw2 = new BackgroundWorker();
private void backgroundWorker1_DoWork2(object sender, DoWorkEventArgs e)
{
try
{
System.Net.WebClient WebClient = new System.Net.WebClient();
WebClient.DownloadFile("Http://Path", @"TextFile.txt");
StreamReader reader = new StreamReader(@"TextFile.txt");
string URLvalue = reader.ReadToEnd();
reader.Close(); reader.Dispose();
e.Result = URLvalue.ToString();
}
catch
{
LblError.Text = "Error";
}
}

private void backgroundWorker1_RunWorkerCompleted2(object sender, RunWorkerCompletedEventArgs e)
{
TxtRes.Text = e.Result.ToString();
}

Sir-Programmer
جمعه 15 شهریور 1392, 19:18 عصر
کسی نیست کمک کنه ؟

tooraj_azizi_1035
جمعه 15 شهریور 1392, 19:39 عصر
شما باید برای دستیابی به Label تون در ترد UI از داخل ترد BgWorker از متد Invoke استفاده کنید یعنی به جای این خط:
LblError.Text = "Error";
این باشه:

LblError.Invoke( new Action(()=>{ LblError.Text="Error";}));

Sir-Programmer
جمعه 15 شهریور 1392, 20:23 عصر
مرسی که جواب دادی ولی بازم همین ارور :

Exception has been thrown by the target of an invocation.

Sir-Programmer
جمعه 15 شهریور 1392, 20:42 عصر
اینم عکس از ارور اگه کسی میدونه مشکل کجاست لطفاً کمک کنه ممنون
110257

Sir-Programmer
شنبه 16 شهریور 1392, 01:43 صبح
کسی نیست کمک کنه ؟

tooraj_azizi_1035
شنبه 16 شهریور 1392, 12:56 عصر
قسمت View Detail تو Exception ای که می ده رو می تونی نشون بدی یا پنجره IntelliTrace.

Sir-Programmer
شنبه 16 شهریور 1392, 20:58 عصر
سلام مشکل برطرف شد ممنون مشکل تو قسمت ComPlet بود

FastCode
شنبه 16 شهریور 1392, 21:15 عصر
دفعه بعد که با چنین Exception ی برخورد کردی InnerException رو نگاه کن.