Задать вопрос
BRUC
@BRUC
"А зори здесь тихие..."

Как запустить WPF приложение из консоли?

Добрый день.
Что имеется:
  • Одно решение
  • Два проекта в нём. Одно из которых консольное, другое WPF

Требуется из консоли запустить WPF приложение в новом потоке.
В интернете нашёл способ через System.Windows.Application, но такого не существует.

Тогда в WPF приложении создал новый метод, так сказать, главный.
И запускал его в новом потоке следующим образом:
// Наш класс WPF приложения.
    MainWindow WPF = new MainWindow();
    Thread WPFTh = new Thread(new ThreadStart(WPF.MainWindows));
    WPFTh.Start();  // Запускаем поток


В данном методе(главном), происходит инициализация компонентов, как в конструкторе обычного WPF - приложения. Но ничего не происходит. Приложение не запускается.

В чём беда?

--ADD--:
Пробовал использовать метод show, что бы открыть окно в новом потоке.
MainWindow WPF = new MainWindow();
Thread WPFTh = new Thread(new ThreadStart(WPF.Show));
WPFTh.Start();

Но вот вылазит следующая ошибка:
"Необработанное исключение типа "System.InvalidOperationException" в WindowsBase.dll

Дополнительные сведения: Вызывающий поток не может получить доступ к данному объекту, так как владельцем этого объекта является другой поток."


Открывал без нового потока. Консоль работает, а вот окно - конечно же нет. Открылось, но осталось висеть не рабочее.
  • Вопрос задан
  • 1367 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@Sumor
using System;

class Program
{
    [STAThread]
    static void Main(string[] args)
    {
        Console.WriteLine("Starting WpfApplication1.exe...");

        var domain = AppDomain.CreateDomain("WpfApplication1Domain");
        try
        {
            domain.ExecuteAssembly("WpfApplication1.exe");
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }
        finally
        {
            AppDomain.Unload(domain);
        }

        Console.WriteLine("WpfApplication1.exe exited, exiting now.");
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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