每个循环更新变量

时间:2013-06-02 18:09:12

标签: c# winforms

编写了这段代码,在点击按钮时调用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项目。

1 个答案:

答案 0 :(得分:0)

您需要一个地方来保存您当前的值,在示例中我已将其设为名为pageNum的本地。然后,在循环内部,您将增加该变量并将其分配给在其初始化程序中构造的Page对象上的PlayerSearchParameters属性。

如果希望方法在开始循环的下一次迭代之前等待异步方法完成,请将事件处理程序asyncawait作为您正在调用的结果

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事件的处理程序中。