Task SendUserMessage(User user, Message message) { return(Task.Run(() => { Object messageLock = new Object(); lock (messageLock) { if (user.CheckIfConnected()) { user.Send(message); } } })); }
Task CheckIfConnected() { return(Task.Run(() => { Object userListLock = new Object(); lock (userListLock) { for (int i = 0; i < users.Count; i++) { User currentUser = (User)users.ElementAt(i).Value; if (!currentUser.CheckIfConnected()) { int userKey = users.ElementAt(i).Key; users.Remove(userKey); } } } })); }