2011-05-24 48 views
0

我正在編寫一個C#wpf應用程序,我需要阻止處理以等待事件。 如果我使用Thread.Sleep(),事件永遠不會被觸發,UI也掛起,所以我不知道還有什麼要做。線程塊的處理

switch (process.Action) 
      { 
       case 1: 
        this.Goto(process.VarValue); 
        break; 

       case 2: 
        this.Extract(process.VarKey, process.VarValue); 
        break; 

       case 3: 
        this.Validate(new string[] { }); 
        break; 

       default: 
        break; 
      } 

像「提取」的情況下,它抓住信息併發送事件,其中將打開另一個WPF窗口,即彈出,要求用戶輸入的服務。

界面顯示,但提交按鈕掛起,然後應用程序掛起,我使用統一,eventaggregator,也麥哲倫wpf,所以項目越來越複雜。

我想要一個更簡單的方法讓線程等待用戶輸入。

請指教。

  1. 螺紋頭=>上提取物的情況下進行切換
  2. =>發送事件彈出打開服務(WPF窗口中,用戶輸入)
  3. 我使用了Thread.Sleep(1000),直到服務發送響應EVENT
  4. 但應用程序掛起,使用thread.sleep包括(彈出窗口)。
  5. 我想等待主線程上的用戶輸入。
+0

不知道我明白什麼線程在運行?你能詳細說明嗎? – 2011-05-24 08:14:16

+0

確保您不會阻止UI線程。 – driis 2011-05-24 08:22:38

回答

1

使用Window.ShowDialog打開您的彈出窗口。只有在彈出窗口再次關閉後,Showdialog纔會返回。見here。無需複雜的線程掃描器。