/// <summary>
/// 数值分段
/// </summary>
/// <param name="num">数值</param>
/// <param name="size">尺寸</param>
/// <param name="size">如参数:25,10,返回[1-10,11-20,21-25]</param>
public static List<Page> CalPages(int num, int size)
{
List<Page> list = new List<Page>();
//整数
var value = Convert.ToInt32(Math.Floor((decimal)(num / size)));
//余数
var left = Convert.ToInt32(num % size);
Page page = null;
for (int i = 1; i <= value; i++)
{
page = new Page();
if (i == 1)
{
page.start = i;
page.end = size;
}
else
{
page.start = (i - 1) * size + 1;
page.end = i * size;
}
list.Add(page);
}
if (value > 0 && left != 0)
{
page = new Page();
page.start = value * size + 1;
page.end = value * size + left;
list.Add(page);
}
return list;
}
/// <summary>
/// 数据信息
/// </summary>
public class Page
{
public int start { get; set; }
public int end { get; set; }
}
/// <summary>
/// 数据信息
/// </summary>
public class Page
{
public int start { get; set; }
public int end { get; set; }
}
//多线程
var list = CalPages(sumNum, 1000);
foreach (var item in list)
{
CancellationTokenSource tokenSource = new CancellationTokenSource();
CancellationToken ct = tokenSource.Token;
var index = list.IndexOf(item);
taskfactory.StartNew(new Action<object>(t =>
{
for (int i = index == 0 ? baseMoneyNum + 1 : item.start; i < item.end; i++)
//method
{
}}
}),tokenSource.Token, ct)};
}