private void button1_Click(object sender, EventArgs e)
{
foreach (var user in userList)
{
for (int i = 0; i < 10; i++)
{
Method(user, i);
}
}
}
private void Method(String user, Int32 id)
{
webBrowser1.Navigate(url+user+id);
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebDocumentCompleted);
}
void WebDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
//işlemler
} C# Ustalarına bir soru
14
●1.445
- 09-08-2015, 12:02:30Webbrowser kullanıyorum, webbrowser yüklendiği zaman işlem yaptırmaya çalışıyorum ama olmuyor.Aşağıdaki kod foreach daki döngü tam bittikten sonra WebDocumentCompleted çalışıyor , döngünün her adımında WebDocumentCompleted e düşmesini istiyorum ama olmuyor.
- 09-08-2015, 13:14:44Hocam aslında her seferinde çalışması gerektiği gibi çalışıyor fakat for döngüsü senin gözünle görebiliceğinden çok daha hızlı bir şekilde bu işlemleri yaptığı için sen sadece son işlemin etkisini görebiliyosun özellikle navigate gibi bir event için belli bir süre gerekli sayfanın açılması için bu yüzden yaptığın şey maalesef mümkün değil, timer ve counter kullanarak istediğin şeyi elde edebilirsin.osal adlı üyeden alıntı: mesajı görüntüle
- 09-08-2015, 15:10:36hocam event in bitmesini bekleyecek bir kod v.s. varmı, onu nasıl yapacağız, event sonucu beklenmeden döngü dönüyor o zamanda istediğim gibi çalışmıyoroguzhane adlı üyeden alıntı: mesajı görüntüle
- 09-08-2015, 16:19:48sıkıntı navigate eventinin belli bir süre istemesi for döngüsü hepsini anında yapıyor, for döngüsüyle böyle birşey yapamazsın.(yapılabilir fakat çok uzun sürer ve sıkıntılı olabilir)osal adlı üyeden alıntı: mesajı görüntüle
- 09-08-2015, 16:35:23o durumda farklı sorunlar oluşturuyor, daha farklı bir durum olsa aslında benim sorunumu çoğu kişinin yaşaması lazım ama çok bilgi bulamadım internetteObreuS adlı üyeden alıntı: mesajı görüntüle
Mecburen yapmak zorundayım, webbrowser üzerinden veri çekiyorum, başka türlü veri çekmeyi engellemişlerShadowsTR adlı üyeden alıntı: mesajı görüntüle
evet işte buna çözüm arıyorum, amacım webbrowser dolunca veri çekmek ,başka türlü çektiğim site engelliyoroguzhane adlı üyeden alıntı: mesajı görüntüle - 09-08-2015, 16:46:58ben genelde eğer webbrowserden dönen bir sonucu bekleyeceksem şu şekilde yapıyorum.
do{application.doevents();}while(webbrowser.ReadyS tate!=WebBrowserReadyState.Complete);
elle yazdım yazım yanlışı olabilir. Ve de bunun altına kendim bir bekleme komutu yazıyorum.
Bu do-while amacı, webbrowserin navigate ettiği sayfayı yüklemeyi beklemesidir. Ancak son teknolojilerle birlikte sayfalar ajax majax değişik şeyler yüklediği için bu da garanti sonuç vermiyor dediğim gibi altına 3 saniye bekleyeceğim bir fonksiyon yazdım. Webbrowser complete olduktan ve 3 saniye geçtikten sonra alacağımı alıyorum tarayıcıdan devam ediyorum. - 09-08-2015, 17:20:401- webbrowser ile yaptığın işi başka türlü de yapabilirsin, sadece yapmayı bilmiyorsundur..
2- acayip saçma yazmışsın, sürekli eventi ekletiyorsun ama aynı nesneye, böyle kodlama olmaz?
3- sorundan da çok bir şey anlamadım.. her metod tamamlandığında mı çalışsın istiyorsun yoksa hepsi bittikten sonra mı?
----
ama genel olarak ya kendi event handlerını yazacaksın ya da dinamik olarak webbrowser oluşturup her birinin eventini ayrı ayrı create edeceksin. Tam olarak istediğini anlatabilirsen, bir örnek yapabilirim