编写了这段代码,在点击按钮时调用Async函数一次。
但是我想让它在每个循环上不断更新Page变量。
示例:第一个循环页面= 1秒循环页面= 2依此类推...并在另一个按钮点击时停止循环。
private void button2_Click(object sender, EventArgs e)
{
var searchParameters = new PlayerSearchParameters
{
Page = 2,
League = League.BarclaysPremierLeague,
Nation = Nation.England,
Position = Position.CentralForward,
Team = Team.ManchesterUnited
};
LoginM.SearchItemsAsync(searchParameters);
}
很抱歉没有详细说明/ searchParamters从文本框中获取并通过调用发送到LoginM.cs文件上的Async函数:
LoginM.SearchItemsAsync(searchParameters);
我想要LoginM.SearchItemsAsync(searchParameters);连续调用,每次调用“Page”变量时,应增加+1
如何创建循环来执行上述操作?
它是一个WinForm项目。
答案 0 :(得分:0)
您需要一个地方来保存您当前的值,在示例中我已将其设为名为pageNum
的本地。然后,在循环内部,您将增加该变量并将其分配给在其初始化程序中构造的Page
对象上的PlayerSearchParameters
属性。
如果希望方法在开始循环的下一次迭代之前等待异步方法完成,请将事件处理程序async
和await
作为您正在调用的结果
private async void button2_Click(object sender, EventArgs e)
{
var pageNum = 0;
while(true) //<-- Insert whatever your real condition is here instead of true
{
var searchParameters = new PlayerSearchParameters
{
Page = ++pageNum,
League = League.BarclaysPremierLeague,
Nation = Nation.England,
Position = Position.CentralForward,
Team = Team.ManchesterUnited
};
await LoginM.SearchItemsAsync(searchParameters);
}
}
如果您尝试在不必先单击按钮的情况下获得此行为,则可以将方法的主体放在表单上的Load
事件的处理程序中。