Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Thread i etkili bir şekilde nasıl kullanabilirim?

Aşağıdaki kod ile okul id si bulunan okulumdaki tüm öğrencilerimin resimlerini çekmeye çalışıyorum. Ancak sanırım thread konusunda sorun yaşıyorum. Birkaç birşey denedim ancak etkili kullanamadığımdan beceremedim. Şimdilik sadece thread.sleep i çağırdım.

#Kodu çalışır hala getirebilmek için neleri değiştirmem veya eklemem gerekir?
#request kısmında timeout verdim ama gerekli mi? Gerekliyse neden gerekli tam olarak bilemiyorum.
Yardımcı olabilirseniz sevinirim.


 
static public byte[] GetBytesFromUrl(string url)
    {
        byte[] b;
        HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
        WebResponse myResp = myReq.GetResponse();

        Stream stream = myResp.GetResponseStream();
        //int i;
        using (BinaryReader br = new BinaryReader(stream))
        {
            //i = (int)(stream.Length);
            b = br.ReadBytes(500000);
            br.Close();
        }
        myResp.Close();
        return b;
    }

    static public void WriteBytesToFile(string fileName, byte[] content)
    {
        FileStream fs = new FileStream(fileName, FileMode.Create);
        BinaryWriter w = new BinaryWriter(fs);
        try
        {
            w.Write(content);
        }
        finally
        {
            fs.Close();
            w.Close();
        }

    }
    static public void Execute()
    {
       


        for (int i = 19990001; i < 20109999; i++)
        {
            string url = "http://ais.ku.edu.tr/etc/photo/" + i + ".jpg";
            int year = Convert.ToInt32(i.ToString().Substring(0, 4));
            string map_path = "~/" + year;
            if (check(url))
            {
                try
                {
                    string strImage = url.Substring(url.LastIndexOf('/') + 1);
                    WriteBytesToFile(Server.MapPath(map_path) + "/" + strImage, GetBytesFromUrl(url));

                    //Thread.Sleep(420);
                }
                catch (Exception)
                {
                    throw;
                }
            }
        }

    }


    static public bool Check(string url)
    {
        WebRequest webRequest = WebRequest.Create(url);
        webRequest.Timeout = 1000;
        WebResponse webResponse;
        try
        {
            webResponse = webRequest.GetResponse();
        }
        catch
        {
            return false;
        }
        return true;
    }
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

Hiç cevap bulunamadı. İlk cevabı siz yazın.