2017-03-17 50 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#)的更多信息。

相關問題