예제 #1
0
        void finder_StatusChanged(object sender, EventArgs e)
        {
            ICollection <OperationalFinder.OperationalStatus> statusCollection = finder.GetStatus();

            ListViewItem[] items = new ListViewItem[statusCollection.Count];
            int            i     = 0;

            foreach (OperationalFinder.OperationalStatus status in statusCollection)
            {
                ListViewItem item = new ListViewItem();
                item.Name = item.Text = status.name;
                switch (status.responseStatus)
                {
                case OperationalFinder.ResponseStatus.Alive:
                    item.ImageKey = "active";
                    break;

                case OperationalFinder.ResponseStatus.Down:
                    item.ImageKey = "dead";
                    break;

                case OperationalFinder.ResponseStatus.Unknown:
                    item.ImageKey = "unknown";
                    break;
                }

                item.SubItems.Add("status: " + status.responseStatus.ToString().ToLower());

                items[i++] = item;
            }

            this.Invoke(new MethodInvoker(delegate() {
                listViewInstances.BeginUpdate();
                listViewInstances.Items.Clear();
                listViewInstances.Items.AddRange(items);
                listViewInstances.EndUpdate();
            }));
        }