метод wpf для запуска цикла сообщения приложения

Я должен создать Форму в другом потоке и сохранить это ranning пока пользователь performe некоторое действие в основном потоке (нажимают кнопку).

Не очень трудно сделать использование

System.Windows.Forms.Application.Run(new ApplicationContext());

это запускает цикл сообщения приложения в текущем потоке. Но это решение требует использования Системы. Windows. Пространство имен форм, который в не wpf пространство имен.

Вы знаете wpf-способ достигнуть этой цели?=)

P.S. не запуская сообщение приложения циклично выполняются, поток будет imidiatly, завершенным после обработки последнего выражения в нем. Так, Форма появится только на мгновение и будет закрыта. = (

5
задан user101375 9 February 2010 в 08:12
поделиться

3 ответа

Use System.Windows.Threading.Dispatcher.Run()

4
ответ дан 14 December 2019 в 08:49
поделиться

И есть также Dispatcher .PushFrame

Это удобно, потому что позволяет вам запускать цикл сообщений до тех пор, пока вы не определите критерий остановки, например, пока на экране отображается диалог выполнения.

4
ответ дан 14 December 2019 в 08:49
поделиться

Справка?

Application.DoEvents in WPF Revisited

Code extract from the blog:

using System;
using System.Threading;
using System.Windows;
using System.Windows.Threading;

namespace Sheva.Windows
{
    /// <summary>
    /// Designates a Windows Presentation Foundation application with added functionalities.
    /// </summary>
    public class WpfApplication : Application
    {
        /// <summary>
        /// Processes all messages currently in the message queue.
        /// </summary>
        /// <remarks>
        /// This method can potentially cause code re-entrancy problem, so use it with great care.
        /// </remarks>
        public static void DoEvents()
        {
            Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new ThreadStart(delegate { }));
        }
    }
}
-1
ответ дан 14 December 2019 в 08:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: