private async void buttonGen_Click(object sender, EventArgs e)
{
Log.Info("开始批量获取");
TaskbarProgress.SetState(this.Handle, TaskbarProgress.TaskbarStates.Indeterminate);
List <string> lines = Regex.Split(textBoxAV.Text, "\r\n|\r|\n").ToList <string>();
List <BiliInterfaceInfo> ll = new List <BiliInterfaceInfo>();
string failedAVs = "";
var avs = from s in lines where s != "" select s;
//IEnumerable<Task<BiliInterfaceInfo>> llasync =
// from s in lines where s != "" select BiliInterface.GetInfoHTaskAsync(s);
//Task<BiliInterfaceInfo>[] lltasks = llasync.ToArray();
//BiliInterfaceInfo[] lls = await Task.WhenAll(lltasks);
Stopwatch sw = new Stopwatch(); sw.Restart();
BiliInterfaceInfo[] lls = await concurrentAsync(
100,
avs,
new Func <string, ScoreType, Task <BiliInterfaceInfo> >(BiliInterface.GetInfoTaskAsync),
ScoreType.Guichu);
Log.Info($"获取用时:{sw.ElapsedMilliseconds}ms"); sw.Stop();
Log.Info("正在排序");
foreach (BiliInterfaceInfo info in lls)
{
if (info.pic != null)
{
ll.Add(info);
}
else
{
failedAVs += info.avnum + ";";
}
}
ll.Sort(sortt);
for (int i = 1; i <= ll.Count; i++)
{
ll[i - 1].Fpaiming = i;
}
dataGridViewRAW.DataSource = ll;
if (failedAVs != "")
{
Log.Error("注意!下列视频数据未正确获取!\r\n" + failedAVs);
}
textBoxOut.Text = await BiliInterface.GetCsvInfosAsync(ll);
TaskbarProgress.SetState(this.Handle, TaskbarProgress.TaskbarStates.NoProgress);
Log.Info("批量获取完成");
}