等待for循环中的点击

时间:2020-10-30 16:22:45

标签: c# async-await

在C#中,我想遍历一系列模板对象,并希望用户在网格中选择一个坐标。现在,我有了一个枚举器,然后移到ClickEventHandler中的下一个对象。但是由于它更容易阅读,我想我想用async / await尝试一下。 (我的项目越来越大,我需要结构良好的东西)。所以目前我有这样的东西:

    public void OnPositionClicked(object sender, MouseEventArgs e)
    {
        process(((Selection) sender).point, templateEnumerator.Current);
        templateEnumerator.MoveNext();
    }

但是我想要这样更易读的东西

    foreach (var template in templateEnumerator)
    {
        var position = await PositionGotClicked();
        process(position, template);
    }

如何实现async PositionGotClicked()-方法/代理来阻塞单独的线程,直到用户单击某些东西?

我希望我的问题很清楚,我真的不知道这个词。

编辑-目的:目的是创建沉船游戏。在选择模式下,您要放置所有的飞船,我要遍历大小不同的不同类型(潜艇,巡洋舰,战舰...)。因此,我创建了一个类ShipType,该类指定每种类型的船数,每种类型的大小,颜色和名称。然后,我想让每种船型让用户选择“ n”个位置(取决于每种类型有多少个),然后转到下一艘船,为其选择一个位置,依此类推。

0 个答案:

没有答案
相关问题