/// <summary>
        /// Monitor inbox for new unread messages.
        /// </summary>
        /// <param name="messages">PrivateMessages instance</param>
        /// <param name="from">Sender's username</param>
        /// <param name="subject">Message subject</param>
        /// <param name="body">Message body</param>
        /// <param name="timeoutMs">How long to wait for the message to arrive before giving up</param>
        /// <returns>Whether the requested message was found.</returns>
        private bool MonitorForMessage(PrivateMessages messages, string from, string subject, string body, int timeoutMs = 30000)
        {
            messages.MonitorUnread();
            messages.UnreadUpdated += C_UnreadMessagesUpdated;

            DateTime start = DateTime.Now;
            bool     res   = false;

            while (!res &&
                   start.AddMilliseconds(timeoutMs) > DateTime.Now)
            {
                if (E != null)
                {
                    res = CheckMessages(E.NewMessages, from, subject, body);
                }
            }

            messages.UnreadUpdated -= C_UnreadMessagesUpdated;
            messages.MonitorUnread();

            return(res);
        }
 // This method deals with https://github.com/sirkris/Reddit.NET/issues/105
 private void MonitorUnreadMessages(PrivateMessages messages)
 {
     messages.MonitorUnread();
     messages.UnreadUpdated += InvokeUnreadUpdatedEvent;
 }