我已经阅读并查看了很多关于 Threadpooling 的示例,但我似乎无法按照我需要的方式理解它。我设法得到的工作并不是我真正需要的。它只是在自己的线程中运行该函数。
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();
}
我想要做的是有大约 50 个线程(可能更多)来获取包含玩家统计信息的序列化 php 数据。从用户 0 一直到我指定的用户 ID (300,000)。我的问题不是关于如何获取统计信息我知道如何获取统计信息并阅读它们,而是我如何编写一个线程池,它将继续获取统计信息直到它达到第 300,000 个用户 ID 而不会踩到其他线程的脚趾和在检索到数据库时保存统计信息。