J'ai fait un petit programme dans lequel je peux essentiellement envoyer un email via le serveur yahoo smtp. Mon code:Pourquoi le programme Send-Email Freeze?
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Net;
using System.Net.Mail;
using System.Drawing;
using System.IO;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
MailMessage message = new MailMessage();
message.From = new MailAddress("[email protected]");
message.To.Add("[email protected]");
message.Subject = "afdasdfasfg";
message.Body = "Hgfk4564267862738I";
message.IsBodyHtml = true;
message.Priority = MailPriority.High;
SmtpClient sC = new SmtpClient("smtp.mail.yahoo.com");
sC.Port = 587;
sC.Credentials = new NetworkCredential("myid", "mypassword");
//sC.EnableSsl = true;
sC.Send(message);
MessageBox .Show ("Mail Send Successfully");
}
catch (Exception ex)
{
MessageBox .Show (ex + "Mail Sending Fail's") ;
}
}
}
}
La chose bizarre est que cela a fonctionné pour la première semaine. Je pourrais envoyer des messages sans problème. Hier encore, le programme commence à geler et ne répond pas (je n'ai pas changé le code). Pourquoi est-ce arrivé? Comment puis-je réparer mon programme?
Edit: @Andreas Niedermair En ce moment, je viens d'essayer le programme et l'a laissé pendant une minute, une erreur a montré: ContextSwitchDeadlock a été détectée Message: Le CLR a été incapable de faire la transition à partir du contexte COM 0x21eb78 au contexte COM 0x21ece8 pour 60 secondes. Le thread qui possède le contexte/appartement de destination est probablement en train de faire une attente sans pompage ou de traiter une opération très longue sans pomper les messages Windows. Cette situation a généralement un impact négatif sur les performances et peut même conduire à une non-réactivité de l'application ou à une accumulation continue de l'utilisation de la mémoire au fil du temps. Pour éviter ce problème, tous les threads STA (single threaded apartment) doivent utiliser des primitives d'attente de pompage (telles que CoWaitForMultipleHandles) et pomper régulièrement des messages lors d'opérations longues.
Merci pour votre aide!
Avez-vous essayé de le déboguer pour voir où il est suspendu? – Bernard
avec quel framework .net travaillez-vous? –