teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2021/06/23 04:41

投稿

fana
fana

スコア12199

answer CHANGED
@@ -1,2 +1,7 @@
1
1
  `ViewBase.MoveView` が呼ばれる際に,GUIスレッドが停止しているのではないでしょうか.
2
- (例えば,それを呼ぶ側の終了を待っているとか)
2
+ (例えば,それを呼ぶ側の終了を待っているとか)
3
+
4
+ * Invokeの場合:GUIスレッドに処理させたいけどGUIスレッドは停止しているからそこで止まっちゃう(デッドロック)
5
+ * BeginInvokeの場合:BeginInvokeはGUIスレッドにやってほしい処理を予約するだけなので,そこではGUIスレッドが停止してても大丈夫.
6
+ で,その後で(何かがあって)GUIスレッドが動き出してのちに,その予約処理が実施される.
7
+ だから止まらない.