NetDetailForm.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using Oreo.PCMonitor.Commons;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Net;
  7. using System.Threading;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using Y.Utils.DataUtils.Collections;
  11. using Y.Utils.DataUtils.UnitConvertUtils;
  12. namespace Oreo.PCMonitor.Views
  13. {
  14. public partial class NetDetailForm : Form
  15. {
  16. public NetDetailForm()
  17. {
  18. InitializeComponent();
  19. }
  20. private void NetDetailForm_Load(object sender, EventArgs e)
  21. {
  22. Task.Factory.StartNew(() =>
  23. {
  24. Thread.Sleep(3000);
  25. while (true)
  26. {
  27. if (R.NFS.IsNetFlowRun || R.NFS.IsNetPacketRun)
  28. {
  29. R.Log.v("IsNetFlowRun: " + R.NFS.IsNetFlowRun + " IsNetPacketRun: " + R.NFS.IsNetPacketRun +
  30. " Upload: " + R.NFS.NetFlow.UploadData + " Download: " + R.NFS.NetFlow.DownloadData);
  31. UIDgProcessDetailUpdate();
  32. }
  33. Thread.Sleep(10000);
  34. }
  35. });
  36. }
  37. private void UIDgProcessDetailUpdate()
  38. {
  39. if (IsDisposed) return;
  40. BeginInvoke(new Action(() =>
  41. {
  42. if (R.NFS != null && ListTool.HasElements(R.NFS.NetProcessInfoList))
  43. {
  44. label1.Text = "丢包数:" + R.NFS.LostPacketCount;
  45. R.NFS.NetProcessInfoList.ForEach(p =>
  46. {
  47. bool isUpdate = false;
  48. foreach (DataGridViewRow r in DgProcessDetail.Rows)
  49. {
  50. if (r.Cells["CoName"].Value.ToString() == p.ProcessName)
  51. {
  52. isUpdate = true;
  53. r.Cells["CoDownload"].Value = ByteConvertTool.Fmt(p.DownloadData);
  54. r.Cells["CoUpload"].Value = ByteConvertTool.Fmt(p.UploadData);
  55. r.Cells["CoDownloadCount"].Value = ByteConvertTool.Fmt(p.DownloadDataCount);
  56. r.Cells["CoUploadCount"].Value = ByteConvertTool.Fmt(p.UploadDataCount);
  57. r.Cells["CoConnectionCount"].Value = p.ConnectCount;
  58. }
  59. }
  60. if (!isUpdate)
  61. {
  62. DgProcessDetail.Rows.Add(new object[] {
  63. p.ProcessIcon,p.ProcessName,
  64. ByteConvertTool.Fmt(p.DownloadData),ByteConvertTool.Fmt(p.UploadData),
  65. ByteConvertTool.Fmt(p.DownloadDataCount),ByteConvertTool.Fmt(p.UploadDataCount),
  66. p.ConnectCount});
  67. }
  68. });
  69. }
  70. }));
  71. }
  72. }
  73. }