0

私がやっているメインウィンドウで、新しいWPFプロジェクトを作成しました:

public MainWindow()
{
    InitializeComponent();

    Thread Worker = new Thread(delegate(){

        this.Dispatcher.BeginInvoke(DispatcherPriority.SystemIdle, new Action(delegate
        {
            while (true)
            {
                System.Windows.MessageBox.Show("asd");

                Thread.Sleep(5000);
            }
        }));
    });

    Worker.Start();
}

問題は、MainWindow がハングするこれらのメッセージの間にあります。非同期で動作させるにはどうすればよいですか?

4

3 に答える 3

0

何をアーカイブしようとしていますか?

while-Loop と Thread.Sleep() は UI-Thread で実行されるため、MainWindow がハングするのも不思議ではありません。

これら 2 つを BeginInvoke-call の外に配置し、MessageBox.Show のみを Action 内に配置する必要があります。

于 2013-04-30T11:23:26.580 に答える