Prozess ist beendet, aufgrund StackOverflowException

Dies ist schwierig die situation zu erklären. Ein service-Prozess, der startet 2 threads, jeder thread loops für immer, sondern Schlafmöglichkeiten für je 5 Minuten, einmal die Nutzlast ist fertig.

Problem ist, dass meine zweite thread beendet wird, bevor die Nutzlast ist auch fertig, ohne ersichtlichen Grund, und ich kann auch nicht die Ausnahme abfangen, wie es scheint ausgelöst zu werden, die von außerhalb der Delegierten-Prozess?

Irgendwelche Vorschläge, wie das problem zu finden?

Den code....

public void StartService()
{
  ThreadStart stRecieve = new ThreadStart(DownloadNewMail);
  ThreadStart stSend = new ThreadStart(SendNewMail);
  senderThread = new Thread(stRecieve);
  recieverThread = new Thread(stSend);

  sendStarted = true;
  recieveStarted = true;

  senderThread.Start();
  recieverThread.Start();
}

private void DownloadNewMail()
{
  while(recieveStarted)
  {
    //Payload....

    if (recieveStarted)
    {
      Thread.Sleep(new TimeSpan(0, confSettings.PollInterval, 0));
    }
  }
}

private void SendNewMail()
{
  while(sendStarted)
  {
    //Payload....

    if (sendStarted)
    {
      Thread.Sleep(new TimeSpan(0, confSettings.PollInterval, 0));
    }
  }

}

  • Ein StackOverflowException ist oft verursacht durch recursing zu tief ist, oder durch Rundschreiben Instanziierungen. Verwenden Sie die Rekursion irgendwo?
  • "jeder thread loops für immer"<--post, dass der code hier
  • Haben es geschafft, zu lösen, indem Sie die Fäden als statische...
  • das klingt wie begraben das problem anstatt es zu beheben...
  • Ich bin mir ziemlich sicher, dass das nicht eine Rekursion problem, als die Ausnahme ausgelöst wird, auf die erste Instanz? werde versuchen und poste den code später. tx für das Interesse bisher. Zu viel paste ist, schneiden Sie es nach unten, um die Größe...
  • de Jader, code gepostet von Ihr, funktioniert einwandfrei. Möglicherweise ist das problem in der "//Nutzlast..." - block oder irgendwo anders...

InformationsquelleAutor Jan de Jager | 2010-12-15
Schreibe einen Kommentar