Я действительно не понимаю, как эта ошибка происходит при этом коде. Пожалуйста, проверьте код самостоятельноПопытка чтения или записи защищенной памяти. Это часто свидетельствует о том, что другая память повреждена.
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
Вы фактически используете * два * потока, один в «Задаче», а затем в «Thread», лучше просто поместить код, который вы хотите запустить, в качестве кода запуска в «Thread». – casperOne
@casperOne Я также пробовал, что все еще сбой приложения. И это происходит через некоторое время не сразу. Он работает как 30 минут, затем сбой. Время сбоя меняется. – MonsterMMORPG
Нет, говорят, что ваша память сломана. Это должно быть так! (btw - это самое тупая ошибка, с которой я столкнулся после «неопределенной ошибки»). – leppie