私は今、私のものではないいくつかのコードを実行しています。コードには、次のコードを含むスレッドがあります。
while (true)
{
Thread.sleep(int.MaxValue);
}
また、InterruptedException をキャッチし、すぐにループに戻るため、ループを中断することさえできません。
なぜこのスレッドが存在するのか、目的は何なのか、誰か知っていますか?
編集: もう少しコンテキストの完全なコード:
using IKVM.Attributes;
using java.lang;
using System;
using System.Runtime.CompilerServices;
namespace applicationNamespace
{
internal sealed class DedicatedServerSleepThread : Thread
{
internal DedicatedServer theDecitatedServer;
[MethodImpl(MethodImplOptions.NoInlining)]
internal DedicatedServerSleepThread(DedicatedServer dedicatedServer)
{
this.theDecitatedServer = dedicatedServer;
base.setDaemon(true);
this.start();
}
[MethodImpl(MethodImplOptions.NoInlining)]
public override void run()
{
while (true)
{
try
{
while (true)
{
System.Threading.Thread.Sleep(int.MaxValue);
}
}
catch (System.Threading.ThreadInterruptedException)
{
}
}
}
static DedicatedServerSleepThread()
{
}
}
}
以前のコードはいくつかの非標準ライブラリを使用しているため、小文字のスリープが有効であったことに注意してください。具体的には、ikvm ライブラリ (Java 標準ライブラリに基づいており、Java プログラムを .net にクロスコンパイルするために使用されます) を使用していました。
これは、.net バイトコードにクロスコンパイルしてから逆コンパイルした Java サーバー プログラムです。なんらかの理由で睡眠専用のスレッドを見たことがあるかどうか、もしそうならその理由が何であるかはわかりませんでした. ta.speot.is は本当に良い答えを出すためのものです。