metin2 patcher mi yazıyorsun :)

Tahmin yürütüyorum, dosya indirme işlemi sorunsuzca başladığı anda methoda olumlu dnüş yapılıyor ve dngü devam ediyor olabilir. Yani indirme işlemi bitti mi, yarıda mı kesildi gibi geri dnüşleri olmayabilir kullandığın methodun. Doğal olarak zaten senkron çalıştığı için indirmenin tamamlanıp tamamlanmadığını kontrol etmiyordur method. Eğer bu tahmin ettiğim mantıkla çalışıyorsa biraz amelelik olacak ama şyle birşey yapılabilir; yazdığın foreach dngüsünün içinde methodu çağırdıktan sonra sürekli indirilen dosyanın boyutunu kontrol et while ile. beklenen değerin üstüne çıkınca while'dan çıkıp foreach'a devam et. Everyone sees just what they want to see.

public void DownloadFile { using (webClient = new WebClient { webClient. DownloadFileCompleted += new AsyncCompletedEventHandler ; webClient. DownloadProgressChanged += new DownloadProgressChangedEventHandler ; Uri URL = urlAddress. StartsWith ? new Uri : new Uri ; sw. Start ; try catch } } evet bahsettiğim gibi hocam Asycn method kullanıyorsun. Eğer downloadFile methodunu asycn yapıp. Methodu çağırırken nüne await koyarsan senkron biçimde işlemleri yapabilirsin. Ayrıca holy'nin bahsettiği gibi Parallel Foreach ile çok güzen ve kolayca asenkron işlem yürütebilirsin. Zaten konuyu çzmüşsün ama ek bilgi olarak vermek istedim. herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri ğrenmeye çalışmayın. yabancı dil filan ğrenin amq.// s. kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//

Merhaba arkadaşlar, C#'ta bir patcher yapıyorum. verdiğim xml dosyasındaki tüm <dosya>url</dosya> etiketlerindeki dosyaları indiriyor. fakat sorun şu foreach foreach dngüsü downloadı başlatıyor. fakat bitmeden 2. 3. 4. downloadı da başlatıyor. yani sırası ile indirme olayı olmuyor. downloadFile fonksiyonu void tipinde. download bitene kadar dngü bekletilemez mi? çzüm nerilerinizi alabilirmiyim. Ne zaman birşey ğrenmek istesem, Birden Vaktim Kalmıyor?

IDM İle 20 tane dosya indirdiğinde kuyruk yapıyor ya, 3 tanesi başlıyor diğerleri beklemede, bittikçe sıradaki indiriliyor. onu soruyorum. senkron otomatik o işlemi yapıyor mu? pythonda thread ve queue modüllerini kullanıyorum ben sıraya diziyorum linkleri bir threadin işi bittiğinde diğerine geçiyor c#'de de mutlaka vardır araman gereken kelimeler Thread Pool

IDM İle 20 tane dosya indirdiğinde kuyruk yapıyor ya, 3 tanesi başlıyor diğerleri beklemede, bittikçe sıradaki indiriliyor. onu soruyorum. senkron otomatik o işlemi yapıyor mu? Ne zaman birşey ğrenmek istesem, Birden Vaktim Kalmıyor?

Çok sayıda aynı anda indirmeye ihtiyacın yoksa threade, backgroundworkera girmeden parallel for olayına bak. Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı ktektir!

sormak istediğini tam olarak anlayamadım hocam Everyone sees just what they want to see.

public void DownloadFile { using (webClient = new WebClient { webClient. DownloadFileCompleted += new AsyncCompletedEventHandler ; webClient. DownloadProgressChanged += new DownloadProgressChangedEventHandler ; Uri URL = urlAddress. StartsWith ? new Uri : new Uri ; sw. Start ; try catch } } Ne zaman birşey ğrenmek istesem, Birden Vaktim Kalmıyor?

Terror'un dediği gibi asenkron ve ve paralel işlemler yaptır. MSDN'deki rnekleri de incelemeni tavsiye ederim; http://msdn.microsoft.com/en-us/library/hh191443.aspx Anahtar kelimeler: DownloadFileTaskAsync ForEachAsync Asynchronous Programming with Async and Await Walkthrough: Accessing the Web by Using Async and Await < How to: Extend the Async Walkthrough by Using Task. WhenAll How to: Make Multiple Web Requests in Parallel by Using Async and Await < Async Return Types Control Flow in Async Programs Fine-Tuning Your Async Application Handling Reentrancy in Async Apps WhenAny: Bridging between the. NET Framework and the Windows Runtime Async Cancellation: Bridging between the. NET Framework and the Windows Runtime Using Async for File Access ZINDIK tarafından 15/Ara/14 21:40 tarihinde düzenlenmiştir

Olayı çzdüm. EDİT : Çzüm.. private void metin2PackKontrol { XmlDocument xmlDosya = new XmlDocument ; xmlDosya. Load ; XmlNodeList xmlnode = xmlDosya. GetElementsByTagName ; foreach { string dosyaadi = eleman . InnerText; string dizin = eleman . InnerText; string url = eleman . InnerText; string hash = eleman . InnerText; if (! Directory. Exists if ((dp. getMd5Hash != hash) || (! File. Exists { lblName. Text = "Download : " + dosyaadi; DownloadFile ; while durum = true; } } } Olay while dngüsünde bitiyor. foreach dngüsü while den çıkmadığı sürece program bekliyor. downloadComplete olduğunda durum = false; yapıp çıkıyorum. hemen ardından durum'u tekrar true yapıyorum ki :) yine beklesin. yardımcı olan arkadaşlara çok teşekkürler. Ayrıca aynı konuyu CW'ye açmıştım. bu saat oldu cevap veren yok :/ işte tbt farkı burdan belli oluyor. DuPi tarafından 16/Ara/14 11:43 tarihinde düzenlenmiştir Ne zaman birşey ğrenmek istesem, Birden Vaktim Kalmıyor?

Hocam downloadfile methodunun içindeki kodlarıda gsterebilirmisin. şuanda yazdığın kod multithread yada asenkron değil. bu yüzden download bitene kadar downloadFile methodunda kod takılı kalması gerekiyor. eğer kodun asenkron yada multithread değilse ama çatara çutara diğer dosyaları indirmeye çalışıyorsa büyük ihtimalle bir exception oluşuyordur. herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri ğrenmeye çalışmayın. yabancı dil filan ğrenin amq.// s. kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//

hah paşam işte bu cevabı bekliyordum :) pc bende değil. DownloadComplete metodunu kontrol edebiliyorum. aslında sormam gereken soru şuydu. foreach dngüsünde. boolean tipinde x fonksiyonu çalıştığında geri dnüş yapması beklenir mi gibi. olmalıydı. akşam bunu deneyecem... while Peki şyle bir soru sorayım. senkron'a limit veya sıra verilebilir mi? mesela 100 adet dosya download yapacam. foreach başladı. sekron olduğu için 100 taneyi kısa sürede tamamlayacak. ama o 100 adet indirme başlatacak mı? yoksa maks bağlantı atıyorum 20'dir o yirmiden 1 bitince 19+1 şeklinde indirme yapacak mı? Ne zaman birşey ğrenmek istesem, Birden Vaktim Kalmıyor?