簡體   English   中英

停止方法並等待用戶輸入

[英]Stop a method and wait for user input

我的程序是用C#編寫的,並且在WPF中有一個GUI。 單擊一個按鈕時,將調用StopAndGo()方法。

問題是我希望此方法在某些點停止,等待用戶輸入,然后繼續。

我想這可以通過多線程來完成,但由於我從未研究過這個主題,我想確保它可以完成,並且在研究它之前是否很難完成。

你能給我一些關於需要做什么的指導嗎?

謝謝。

首先,我不認為多線程是這里的方式。 如果希望方法在某些點停止,則應對其進行編碼,以顯示彈出框,文本框或任何其他區域以接收輸入。 所以你需要多種方法來處理這個問題,在main方法中你可以調用其他方法來創建這些等待點。

如果您的代碼無法在沒有用戶輸入的情況下繼續進行,則模態對話框是避免多個線程的好方法。

DialogBox dialogBox = new DialogBox();

// Show window modally 
// NOTE: Returns only when window is closed
Nullable<bool> dialogResult = dialogBox.ShowDialog();

來自https://msdn.microsoft.com/en-us/library/system.windows.window.showdialog(v=vs.110).aspx

使用ManualResetEvent類。 啟動一個執行StopAndGo()的線程; 在該線程調用的上下文內部

 this.manualResetEvent.WaitOne(TimeSpan.Infinite,false);

當您的用戶完成輸入時,請致電

this.manualResetEvent.Set();

這會讓其他線程知道繼續使用stopANdgo

當您的方法具有背景特性時,使用多線程的原因,並且您不希望在該方法執行時鎖定UI。

對於等待場景,您可能需要使用同步對象,例如ManualResetEvent

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM