Я действительно не понимаю, как эта ошибка возникает в этом коде. Пожалуйста, проверьте код самостоятельно
void dispatcherTimer_Tick(object sender, EventArgs e)
{
string srUrl = lstLocalIndex[irLocalIndex] + lstMainIndex[irMainIndex].Replace("0;","");
Task.Factory.StartNew(() =>
{
startNewWindow(srUrl);
});
}
void startNewWindow(string srUrl)
{
NewWindowThread<TitleWindow, string>(c => new TitleWindow(c), srUrl);
}
Вот в этом коде и происходит ошибка. Я также приложу скриншот
private void NewWindowThread<T, P>(Func<P, T> constructor, P param) where T : Window
{
Thread thread = new Thread(() =>
{
T w = constructor(param);
w.Show();
w.Closed += (sender, e) => w.Dispatcher.InvokeShutdown();
try
{
System.Windows.Threading.Dispatcher.Run();
}
catch
{
}
});
thread.SetApartmentState(ApartmentState.STA);
try
{
thread.Start();
}
catch
{
}
}
Эта ошибка вызывает ошибку броска всего программного обеспечения и перестает работать, даже если я вызываю их в новом потоке :(
Эта ошибка броска строки System.Windows.Threading.Dispatcher.Run() ;
Пожалуйста, проверьте также снимок экрана
C# 4.0 WPF