質問編集履歴

2

省略していたコードを追加。

2018/06/16 04:32

投稿

mknji
mknji

スコア19

test CHANGED
File without changes
test CHANGED
@@ -1,12 +1,20 @@
1
- WPFファイル監視アプリ作ろうかと思ったところ、
1
+ **回答者様、すみません。回答と齟齬が発生しますが、わかりにくいの質問修正します**
2
2
 
3
- FileSystemWatherを使えません。
4
3
 
5
- FileSystemWatherがUIと別スレッドなので
6
4
 
7
- SynchronizingObject=this;として解決きると思いましたが、次のエラーが出
5
+ ①WPFでファイル監視アプリを作り、ファイルが新規作成された時点でWindowのTitleを弄ろうとしたところ、FileSystemWatherの部分でエラー発生しした。
8
6
 
7
+ > System.InvalidOperationException: このオブジェクトは別のスレッドに所有されているため、呼び出しスレッドはこのオブジェクトにアクセスできません。
8
+
9
+
10
+
11
+
12
+
13
+ ②FileSystemWatherがUIと別スレッドなので
14
+
15
+ SynchronizingObject=this;として解決できると思いましたが、次のエラーが出ます。
16
+
9
- > 型 'Window1' を 'System.ComponentModel.ISynchronizeInvoke' に暗黙的に変換できません。明示的な変換が存在します。(cast が不足していないかどうかを確認してください)
17
+ > 型 'Window1' を 'System.ComponentModel.ISynchronizeInvoke' に暗黙的に変換できません。明示的な変換が存在します。(cast が不足していないかどうかを確認してください)
10
18
 
11
19
 
12
20
 
@@ -64,7 +72,7 @@
64
72
 
65
73
  //UIthred
66
74
 
67
- // filewacher.SynchronizingObject = this; ←キャストミスといわれる。GetWindowとかでキャストしてもダメ
75
+ // filewacher.SynchronizingObject = this; ←キャストミスといわれる。GetWindowとかでキャストしてもダメ
68
76
 
69
77
 
70
78
 
@@ -112,13 +120,13 @@
112
120
 
113
121
  {
114
122
 
115
- //show messagebox the created file path
123
+ //the created file path
116
124
 
117
125
  string FilePath = objEventArguments.FullPath;
118
126
 
127
+ //WindowのTitleを変更するよ
119
128
 
120
-
121
- MessageBox.Show(FilePath);
129
+ window1.Title = FilePath + "というファイル検知したよ";
122
130
 
123
131
  }
124
132
 
@@ -126,7 +134,7 @@
126
134
 
127
135
  {
128
136
 
129
- Console.WriteLine(objException.Message);
137
+ Console.WriteLine(objException.Message); //←①ここで例外をキャッチされた
130
138
 
131
139
  }
132
140
 

1

いらない箇所を削除

2018/06/16 04:32

投稿

mknji
mknji

スコア19

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  SynchronizingObject=this;として解決できると思いましたが、次のエラーが出ます
8
8
 
9
- > 型 'Dragmove.Window1' を 'System.ComponentModel.ISynchronizeInvoke' に暗黙的に変換できません。明示的な変換が存在します。(cast が不足していないかどうかを確認してください)
9
+ > 型 'Window1' を 'System.ComponentModel.ISynchronizeInvoke' に暗黙的に変換できません。明示的な変換が存在します。(cast が不足していないかどうかを確認してください)
10
10
 
11
11
 
12
12