Esempio n. 1
0
        private void FormUpdate_Load(object sender, EventArgs e)
        {
            try
            {
                FilmUpdate fu = new FilmUpdate();

                foreach (FieldInfo fi in fu.GetType().GetFields())
                {
                    this.listView1.Columns.Add(fi.Name, -2, HorizontalAlignment.Left); //一步添加
                }

                listView1.KeyDown += listView1_KeyDown;

                //XmlHelper xml = new XmlHelper(path);
                //DataTable dtList = xml.GetData(rootNodeName);'

                FileStream fs = new FileStream(path, FileMode.Open);
                films = XmlHelper.Deserialize(typeof(List <FilmUpdate>), fs) as List <FilmUpdate>;
                fs.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Esempio n. 2
0
        public void CheckFilmState(object film)
        {
            try
            {
                FilmUpdate curFilm = (FilmUpdate)film;

                sem.WaitOne();
                var request = (HttpWebRequest)WebRequest.Create(curFilm.Url);
                request.Timeout = 1000 * 5;
                var          response = (HttpWebResponse)request.GetResponse();
                Stream       stream   = response.GetResponseStream();
                StreamReader sr       = new StreamReader(stream, Encoding.GetEncoding("GB2312"));
                string       content  = sr.ReadToEnd();

                StringBuilder sb = GetFilmUpdateInfo(content);
                curFilm.UpdateState = sb.ToString();

                curFilm.CountWaitDownload = int.Parse(new Regex(@"\d+").Match(sb.ToString()).Value) - curFilm.CountDownloaded;

                //UpdateListview();
                UpdateListview(curFilm);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                sem.Release();
            }
        }
Esempio n. 3
0
        public void UpdateListview(FilmUpdate film)
        {
            if (listView1.InvokeRequired)
            {
                listView1.Invoke(new Action <FilmUpdate>(UpdateListview), new object[] { film });
            }
            else
            {
                listView1.BeginUpdate();
                ListViewItem lvi = new ListViewItem();

                foreach (FieldInfo fi in film.GetType().GetFields())
                {
                    if (fi.Name == "Name")
                    {
                        lvi.Text = fi.GetValue(film).ToString();
                    }
                    else
                    {
                        lvi.SubItems.Add(fi.GetValue(film).ToString());

                        if (fi.Name == "CountWaitDownload" && ((int)fi.GetValue(film)) > 0)
                        {
                            lvi.BackColor = Color.LightPink;
                        }
                    }
                }
                listView1.Items.Add(lvi);
                listView1.EndUpdate();

                for (int i = 0; i < listView1.Columns.Count; i++)
                {
                    listView1.Columns[i].Width = -1;
                }
            }
        }