У меня проблема с многопоточностью - я работаю над фреймворком, который включает в себя два окна: окно серфинга и обычное окно wpfwindow.
В моем первом тесте было автоматически запущено SurfaceWindow, из-за моего выбора проекта visualstudio и в конструкторе моего Surface Window я запустил графический интерфейс.
Один поток для обеих Windows -> без проблем;)
Знайте, что мне нужно изменить порядок, моя отправная точка - общий класс .cs, и у меня возникают трудности с многопоточностью ... Для меня идеальным решением было бы запустить сначала SurfaceWindow и второе WPF-окно, но в та же тема.
Но я не хочу, чтобы WPF-окно запускалось в Contructor SurfaceWindow, но тот же эффект!
Код, вызывающий проблемы с потоками:
(Вызывающий поток не может получить доступ к этому объекту, поскольку объект принадлежит другому потоку.)
public Constructor()
{
Thread t = new Thread(new ThreadStart(StartSurfaceWIndowThread));
t.SetApartmentState(ApartmentState.STA);
t.Start();
startWindow();
}
private void StartNewStaThread() {
AdaptivePrototype.App app = new AdaptivePrototype.App();
app.InitializeComponent();
app.Run();
}
private void startWindow()
{
Thread thread = new Thread(() =>
{
WPFkGui w = new WPFGui(this);
w.Show();
System.Windows.Threading.Dispatcher.Run();
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
}
Теперь код, который был бы идеальным решением, но он не показывает WPFGUI:
public Constructor()
{
Thread t = new Thread(new ThreadStart(StartSurfaceWIndowThread));
t.SetApartmentState(ApartmentState.STA);
t.Start();
startWindow();
}
private void StartNewStaThread() {
AdaptivePrototype.App app = new AdaptivePrototype.App();
app.InitializeComponent();
app.Run();
WPFkGui w = new WPFGui(this);
w.Show();
}
Я был бы рад любой помощи!
Спасибо,
Chris