-5

编写了此代码,该代码在单击按钮时调用一次异步函数。

但我希望它在每个循环上不断更新 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 项目。

4

1 回答 1

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放在表单上事件的处理程序中。

于 2013-06-02T18:23:52.487 回答