demo:
https://www.codeproject.com/Articles/7933/Smart-Thread-Pool#SimpleExample
// 创建一个线程池
SmartThreadPool smartThreadPool = new SmartThreadPool();
// 执行任务
smartThreadPool.QueueWorkItem(() =>
{
Console.WriteLine("Hello World!");
});
// 创建一个线程池
SmartThreadPool smartThreadPool = new SmartThreadPool();
// 执行任务
var result = smartThreadPool.QueueWorkItem(() =>
{
var sum = 0;
for (var i = 0; i < 10; i++)
sum += i;
return sum;
});
// 输出计算结果
Console.WriteLine(result.Result);
等待多个任务完成
// 创建一个线程池
SmartThreadPool smartThreadPool = new SmartThreadPool();
// 执行任务
var result1 = smartThreadPool.QueueWorkItem(() =>
{
//模拟计算较长时间
Thread.Sleep(5000);
return 3;
});
var result2 = smartThreadPool.QueueWorkItem(() =>
{
//模拟计算较长时间
Thread.Sleep(3000);
return 5;
});
bool success = SmartThreadPool.WaitAll(
new IWorkItemResult[] { result1, result2 });
if (success)
{
// 输出结果
Console.WriteLine(result1.Result);
Console.WriteLine(result2.Result);
}
转载于:
https://www.codeproject.com/Articles/7933/Smart-Thread-Pool