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); } }
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(); } }
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; } } }