Попытка чтения или записи защищенной памяти. Это часто указывает на то, что другая память повреждена

Я действительно не понимаю, как эта ошибка возникает в этом коде. Пожалуйста, проверьте код самостоятельно

    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() ;

Пожалуйста, проверьте также снимок экрана

enter image description here

C# 4.0 WPF

7
задан MonsterMMORPG 2 April 2012 в 19:36
поделиться