API呼び出しを行い、コンソールにデータを返すコンソールアプリケーションがあります。C#StackOverFlow同じメソッドを再度呼び出すとループ中の例外が発生する
私はスレッドを使用してAPIを呼び出し、メソッドを呼び出して最後に自分自身を呼び出すメッセージを取得しています。この例ではStackOverFlowExceptionがスローされます。しかし、単純なwhileループを使用しているのであれば、完璧に動作します。
最初のコードでStackOverFlowExceptionをスローする理由は、実際には2つの異なるメソッドが同じ作業をしますか?
var thread = new Thread(GetMessagesInternal);
thread.Start();
private static void GetMessagesInternal() { //THROWS STACKOVERFLOWEXCEPTION
var messages = MyProgram.GetMessages();
foreach (var message in messages) {
Console.WriteLine($"{message.MessageText}");
}
GetMessagesInternal();
}
private static void GetMessagesInternal() { //WORKS FINE
while(true) {
var messages = MyProgram.GetMessages();
foreach (var message in messages) {
Console.WriteLine($"{message.MessageText}");
}
}
}
Googleの "無限ループ" –
申し訳ありませんが、多分質問をする前に、デバッガでコードをステップ実行する必要があります。あなたは人々にあなたを助けるために時間をとるように求めています。あなたが少なくとも何をすることができます何が間違っている自分自身を把握しようとする時間がかかります。 – Sefe