Beispiel #1
0
            public void thread(System.Func <object[], object> func, System.Func <object[], object> callback)
            {
                Thread t = new Thread(new ThreadStart(delegate { func(null);
                                                                 ThreadInvoker.InvokeInMainThread(delegate { callback(null); }); Thread.CurrentThread.Abort(); }));

                t.Start();
            }
Beispiel #2
0
    void DownloadWorker(object url)
    {
        string _url = url.ToString();

        try
        {
            string _filepath = RegGet(_url);

            Stream write;

            long start_position = 0;

            if (File.Exists(_filepath))
            {
                write = File.OpenWrite(_filepath);

                start_position = write.Length;

                write.Seek(start_position, SeekOrigin.Current);
            }
            else
            {
                write = new FileStream(_filepath, FileMode.Create);
            }

            try
            {
                HttpWebRequest httpWebRequest = WebRequest.Create(_url) as HttpWebRequest;

                if (start_position != 0)
                {
                    httpWebRequest.AddRange(start_position);
                }

                Stream read = httpWebRequest.GetResponse().GetResponseStream();

                byte[] buffer = new byte[512];



                int read_size = read.Read(buffer, 0, buffer.Length);

                while (read_size > 0)
                {
                    write.Write(buffer, 0, read_size);
                    read_size = read.Read(buffer, 0, buffer.Length);
                }


                write.Close();

                read.Close();


                if (data_callback.ContainsKey(_url))
                {
                    ThreadInvoker.InvokeInMainThread(delegate { data_callback[_url](_filepath); data_callback.Remove(_url); });
                }
            }
            catch (Exception e)
            {
                write.Close();

                throw new Exception(e.ToString());
            }

            unReg(_url);

            data_thread.Remove(_url);
        }
        catch (Exception e)
        {
            Debug.LogError(e.ToString());

            data_thread.Remove(_url);

            Thread.CurrentThread.Abort();
        }

        Thread.CurrentThread.Abort();
    }