私はスレッドプーリングのかなりの数の例を読んで見ましたが、必要な方法でそれを理解できないようです。私がなんとかしてうまくいったものは、私が本当に必要としているものではありません。独自のスレッドで関数を実行するだけです。
public static void Main()
{
while (true)
{
try
{
ThreadPool.QueueUserWorkItem(new WaitCallback(Process));
Console.WriteLine("ID has been queued for fetching");
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
Console.ReadLine();
}
}
public static void Process(object state)
{
var s = StatsFecther("byId", "0"); //returns all player stats
Console.WriteLine("Account: " + s.nickname);
Console.WriteLine("ID: " + s.account_id);
Console.ReadLine();
}
私がやろうとしているのは、プレイヤーの統計を含むシリアル化されたphpデータを取得する約50のスレッド(おそらくそれ以上)を実行することです。ユーザー 0 から始まり、指定したユーザー ID (300,000) まで。私の質問は、統計を取得する方法ではなく、統計を取得して読み取る方法を知っていますが、他のスレッドのつま先を踏まずに 300,000 番目のユーザー ID に達するまで統計を取得し続けるスレッドプールを作成する方法と、統計を取得してデータベースに保存します。