私は WPF アプリケーションを持っていて、いくつかのアニメーションを別のスレッドで実行しているので、メインの UI スレッドは応答します。ここに投稿されたコードを使用しています:
Thread thread = new Thread(() =>
{
Window1 w = new Window1();
w.Show();
w.Closed += (sender2, e2) => w.Dispatcher.InvokeShutdown();
System.Windows.Threading.Dispatcher.Run();
});
thread.IsBackground = true;
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
通常は問題なく動作しますが、システムがデプロイされた後、次のスタック トレースでアプリケーション クラッシュに関する苦情がありました。
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at System.Collections.Generic.List`1.RemoveAt(Int32 index)
at System.IO.Packaging.PackagePart.CleanUpRequestedStreamsList()
at System.IO.Packaging.PackagePart.GetStream(FileMode mode, FileAccess access)
at System.IO.Packaging.PackagePart.GetStream()
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at Window1.xaml:line 1
at Window1..ctor()
誰かがこの例外を以前に見たことがあり、そこで何が起こっているのか説明できますか? この特定の例外の理由は何ですか?
私は.Net 3.5 SP1を使用しています