Ich verstehe wirklich nicht, wie dieser Fehler bei diesem Code passiert. Bitte überprüfen Sie den Code selbstVersuch, geschützten Speicher zu lesen oder zu schreiben. Dies ist oft ein Hinweis darauf, dass anderer Speicher beschädigt ist
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);
}
Jetzt ist dieser Code, wo der Fehler passiert. Ich werde auch Screenshot
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
{
}
}
Dieser Fehler verursacht gesamte Software throw Fehler anhängen und aufhören zu arbeiten, obwohl ich sie in neuen Thread nenne :(
Diese Linie werfen Fehler System.Windows.Threading.Dispatcher. Run();
Bitte überprüfen Screenshot auch
C# 4.0 WPF
Sie verwenden tatsächlich * zwei * Threads, der eine in der 'Task' und dann den' Thread', besser, um den Code, den Sie als Startup-Code ausführen möchten, einfach in 'Thread' zu platzieren. – casperOne
@casperOne Ich habe auch versucht, dass immer noch Anwendung abstürzt. Und das passiert nach einer Weile nicht sofort. Es läuft wie 30 Minuten und stürzt dann ab. Die Absturzzeit ändert sich. – MonsterMMORPG
Nein, sie sagen, dein Gedächtnis ist gebrochen. Es muss so sein! (Übrigens ist das die dümmste Fehlermeldung, die ich nach einem 'unspezifizierten Fehler' gefunden habe). – leppie