0

次のスタックトレースを受け取りました。しかし、どのクラスのどの関数がこれを発生させたかはわかりません。MainPage..ctorとは誰か教えてもらえますか?

「フレーム画像機能オフセット

0 coredll.dll xxx_RaiseException 19

1 mscoree3_7.dll 520892

2 mscoree3_7.dll 461967

3 mscoree3_7.dll 534468

4 TransitionStub 0

5 System.InternalTimeZoneInfo.TransitionTimeToDateTime 520

6 System.InternalTimeZoneInfo.GetDaylightTime 100

7 System.InternalTimeZoneInfo.GetIsDaylightSavingsFromUtc 128

8 System.InternalTimeZoneInfo.GetUtcOffsetFromUtc 500

9 System.DateTime.ToLocalTime 164

10 System.DateTime.get_Now 72

11 System.DateTime.get_Today 44

12 xxxx.MainPage..ctor 84

13 mscoree3_7.dll 507848

14 mscoree3_7.dll 184683

15 mscoree3_7.dll 183987

16 mscoree3_7.dll 183375

17 System.Reflection.RuntimeConstructorInfo.InternalInvoke 104

18 System.Reflection.RuntimeConstructorInfo.InternalInvoke 1056

19 System.Activator.InternalCreateInstance 1112 "

これはメインページのコンストラクターです。

public MainPage()
{
    InitializeButtons();
    CreateCalendar();
    DisplayHistory();
    DisplayStatistics();
}

そして内部CreateCalendarで変数を初期化しましたDateTime currentDate = DateTime.Today;これは問題を引き起こしているものですか?

4

2 に答える 2

2

次のように、メソッドをページ読み込みイベントに移動することをお勧めします。

public MainPage()
{
     InitializeComponent();
     Loaded += MainPage_Loaded; // you may declare it in xaml as well
}

private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    CreateCalendar();
    DisplayHistory();
    DisplayStatistics();
}

各メソッド内で実行している操作の種類に応じて (主に UI を含む場合)、Dispatcher にラップすることをお勧めします。

private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    CreateCalendar(); //assuming this method does not use UI
    Dispatcher.BeginInvoke(() => 
    {
     //asuming these methods use UI
     DisplayHistory();
     DisplayStatistics();
    });
}

それを試して、私たちに知らせてください、、

乾杯

于 2012-07-02T13:10:33.103 に答える
1

私の場合、このエラーはときどき突然発生し、重要でない変更がいくつかありました。Silverlight Unit Test Framework を実行中のテストの初期化段階で失敗しました。ユニット テスト プロジェクトから間接的に参照されたプロジェクトに変更が加えられました (つまり、ユニット テスト プロジェクトは Windows Phone ライブラリを参照し、ライブラリは PCL を参照して変更されました)。

クラッシュが発生したときに、追加したコードがまったく実行されなかったと言うのは冗長です!

二分法で新しいコードをコメントアウトした後、1行のコメントが例外のスローを停止することになりました。行は次のようになりました。

var items = jData["items"].Select(token => token.ToObject()).ToList();

jData は、よく知られている Json.NET の JObject インスタンスです。Json.NET の最新バージョンに更新しても役に立ちませんでした。

LINQ式を明示的な醜いforループに置き換えた後、エラーはなくなりました(Resharperを嘲笑すると、「forループはLINQ式に変換できる」と書かれています)。

だから私は魔法を信じ始めています。

これが誰かに役立つことを願っています。

于 2013-07-08T14:50:02.017 に答える