オンラインの MSDN 記事から C# WPF アプリのコードを起動しようとしています:「方法: Visual Studio 2010、Windows XP SP3、.NET4.0 で ユーザー インターフェイス (UI) スレッドの作業をスケジュールする」
私が行った唯一の違い:
名前空間を から
wpfApplication1
に変更しました (記事の「1. Visual Studio で WPF アプリケーション プロジェクトを作成し、名前を付ける」WpfApplication1
と矛盾するため。行を置き換えた
string[] files = System.IO.Directory.GetFiles(@"C:\Users\Public\Pictures\Sample Pictures\", "*.jpg");
と
string[] files = System.IO.Directory.GetFiles(@"D:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\", "*.jpg");
(私の Windows XP マシンの構成によると)
しかし、ボタンを押した後、アプリは例外で壊れます:
タスクの待機中またはその Exception プロパティへのアクセスによって、タスクの例外が確認されませんでした。その結果、監視されていない例外がファイナライザー スレッドによって再スローされました。
コードはエラーなしでコンパイルされますが、次の行があります。
Matrix m = PresentationSource.FromVisual(Application.Current.MainWindow)
ポップアップ警告を示す波線付きの Intellisense があります。
「'System.NullRederenceException' の可能性があります」
私の VS2010 ソリューション (この記事を再現しようとしている) は、
http ://wikisend.com/download/404394/msdnHow2ScheduleWorkOnTheUI.rar からダウンロードできます。
このコードの何が問題になっていますか?
そして、それを修正する方法は?
更新:
問題は、例外メッセージを観察する方法ではなく、MSDN サンプル コードを起動する方法です (私のような初心者による)。
例外に固有の質問を個別に行うことを希望します
Update2:
Errata:
申し訳ありません...
前に書いたように、アプリケーションは壊れません。
ボタンクリックイベントハンドラ MessageBox.Show("Finished");
の最後に挿入しました。button1_Click()
ボタンを最初にクリックすると、MessageBox に "Finished!" が表示されます。現れます。
2回目にクリックすると、メッセージボックスが再び表示されますが、アプリは上記の例外もスローします。
そして、例外メッセージとタスクの結果を確認しましたが、何が問題なのかわかりません!
記事のトピックの作業サンプルに興味があり、デバッグに関する質問を他の質問に個別に投稿することを強調したいと思います!
他の人が再現できますか?