private void StartIdleProcess(object sender, DoWorkEventArgs e) { // Get the BackgroundWorker that raised this event. //BackgroundWorker worker = sender as BackgroundWorker; if (imap != null && imap.IsConnected) { imap.StopIdle(); imap.Disconnect(); } imap = new Imap4Client(); imap.NewMessageReceived += new NewMessageReceivedEventHandler(NewMessageReceived); //worker.ReportProgress(1, "Connection..."); imap.Connect(thisForm.imap4ServerTextbox.Text); //worker.ReportProgress(0, "Login..."); imap.Login(thisForm.usernameTextbox.Text, thisForm.passwordTextbox.Text); //worker.ReportProgress(0, "Select 'inbox'..."); imap.SelectMailbox("inbox"); //worker.ReportProgress(0, "Start idle..."); imap.StartIdle(); }