在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”个位置(取决于每种类型有多少个),然后转到下一艘船,为其选择一个位置,依此类推。