Exemplo n.º 1
0
        public void UpdateUsers(Dictionary <String, User> users)
        {
            MethodInvoker invoker = delegate
            {
                UsersList.Items.Clear();
                Dictionary <String, User> temp = new Dictionary <string, User>(users);
                foreach (KeyValuePair <String, User> pair in temp)
                {
                    User u = pair.Value;
                    int where = -1;
                    for (int i = 0; i < UsersList.Items.Count && where == -1; i++)
                    {
                        User user = (User)(UsersList.Items[i]);
                        if ((int)(user.rank) < (int)(u.rank))
                        {
                            where = i;
                        }
                        else if (user.nick.CompareTo(u.nick) >= 0)
                        {
                            where = i;
                        }
                    }
                    if (where == -1)
                    {
                        UsersList.Items.Add(u);
                    }
                    else
                    {
                        UsersList.Items.Insert(where, u);
                    }
                }
            };

            UsersList.BeginInvoke(invoker);
        }