PDA

View Full Version : سوال: مشکل چند نخی در لود اطلاعات سایت ها در winapp



hercool
دوشنبه 05 اسفند 1392, 16:51 عصر
سلام دوستان
من یه برنامه دارم که می خوام بصورت چند نخی اجراش کنم
کار برنامه اینه که یکسری لینک را از لیست بگیره و هر کدوم از لینک ها رو بره باز کنه و محتوای اون لینک رو بگیره و به صورت یک رشته برگدونه
حالا من از webbrowse استفاده کردم مشکل sta component ui میده که گشتم و راه های متفاوت رو امتحان کردم مثل
webclient اما مشکل اینه که کار نمیکنه و اصلا چیزی رو نمی تونه لود کنه یه جا خوندم که باید از statackscheduler استفاده کنم که تو ادرس زیر گفته بود راه درستی نیست و بهتره از webclient استفاده کنیم
http://stackoverflow.com/questions/7032863/stataskscheduler-tpl-extension-and-webbrowser-control-wpf-wrong-thread

من نمونه کد ساده میزارم ممنون میشم راهنماییم کنید
public Task<string> downloadStringAsync(Uri address)
{
TaskCompletionSource<string> tcs = new TaskCompletionSource<string>();
WebClient client = new WebClient();

// Note that you can add error checking here by looking at e.Error/etc, and setting the cancel/error in tcs appropriately...
client.DownloadStringCompleted += (o, e) => tcs.SetResult(e.Result);
client.DownloadStringAsync(address);

return tcs.Task;
}
کد مربوط به async
public async Task<string> getdataAsync(string dataa)
{

string s = await downloadStringAsync(new Uri(dataa));
return s;
}
اینم کد مربوط به تابعی که در code_behind فراخوانیش می کنم
public string tag(string ll)
{

string data="";

Task<string> Tdata = downloadStringAsync(new Uri(ll));
Task<string> Tflow = getdataAsync(ll);
data = Tflow.ToString();
return data;
}
توابع بالا در کلاس سرویس هستن
public MainWindow()
{
InitializeComponent();
s();
}

datalinkservice service1 = new datalinkservice();
public void s()
{
lab.Text = service1.tag("http://www.google.com");

}

لینک های متشابه

http://stackoverflow.com/questions/4269800/webbrowser-control-in-a-new-thread?rq=1

http://stackoverflow.com/questions/19789266/stataskscheduler-and-await-continuation

http://stackoverflow.com/questions/7030270/wpf-tpl-webbrowser-control-error-calling-thread-must-be-sta

http://stackoverflow.com/questions/7032863/stataskscheduler-tpl-extension-and-webbrowser-control-wpf-wrong-thread

http://stackoverflow.com/questions/5971686/how-to-create-a-task-tpl-running-a-sta-thread

http://stackoverflow.com/questions/6943268/wpf-tpl-producer-consumer-pattern-wrong-thread-error

این سوال رو هم در بخش wpf و هم در بخش C#‎‎ برای winapp میزارم

hercool
سه شنبه 06 اسفند 1392, 17:28 عصر
کسی از دوستان نمی تونه در این زمینه راهنماییم کنه که چطور با استفاده از نخ محتوای ادرس سایت های لود شده را بگیرم