2017-03-17 47 views
0

我在C#中有一个Windows 10 uwp应用程序。在一种方法中,我检查一个字符串列表。如果我的列表中只有一个项目,我们就很好。但是,如果我有多个项目,我想要弹出一个ListView,以便用户可以从多个项目中选择一个字符串。当他们选择一个时,引发ListView_SelectionChanged事件,我可以得到选定的字符串。但是,这显然与呼叫方处于不同的方法/事件中。在方法中暂停执行,直到引发ListView中的SelectionChanged事件

问题是,我希望调用方法暂停执行,并等待用户从ListView中选择一个字符串。之后,他们选择一个,我需要在调用者中继续执行。我知道这是在过去的一段时间内完成的,但是这是封锁。我不一定关心它是否阻止了异步/等待和其他新的框架功能,但我相信还有更好的方法吗?

谢谢!

+0

你根本不能在具有void签名的事件处理程序中暂停执行。由于您无法将其更改为任务,因此它不支持异步流程。 – Sievajet

回答

0

我猜我不小心问过这个问题,用不同的方式两次。为此我表示歉意。我想我仍然在四处寻找解决这个问题的方法,但是没有答案可以工作,我又发布了。

这就是说,我终于想出了一个适合我的解决方案,我想分享它。我已经在我的另一个问题上回答了这个问题,所以这里是它的链接。

My answer on the other post

希望这有助于!

0

如果您需要非阻塞解决方案,那么您需要实现async/await。 当执行遇到关键字时,它将把控制权返回给调用者。在用户从等待操作员选择ListView控件中的值后继续。

有关Asynchronous Programming with async and await (C#)的更多信息。

相关问题