用于处理的线程块

时间:2011-05-24 08:10:51

标签: c# .net wpf windows multithreading

我正在编写一个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窗口,弹出窗口,要求用户输入。

UI显示,但是提交按钮挂起,然后应用程序挂起,我使用unity和eventaggregator,还有Magellan用于wpf,因此项目变得越来越复杂。

我正在尝试一种更简单的方法让线程等待用户输入。

请告知。

  1. thread starts =>开关
  2. on extract case =>发送事件以弹出服务打开(wpf窗口,用于用户输入)
  3. 我正在使用thread.sleep(1000),直到服务发送响应EVENT
  4. 但应用程序挂起,使用thread.sleep包括(弹出窗口)。
  5. 我想等待主线程上的用户输入。

1 个答案:

答案 0 :(得分:1)

使用Window.ShowDialog打开弹出窗口。只有在弹出再次关闭后,Showdialog才会返回。见here。无需复杂的线程扫描视频。