回答編集履歴
3
文章の修正
test
CHANGED
File without changes
|
2
文章の修正
test
CHANGED
@@ -4,17 +4,17 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
おそらく、`jusin`は
|
7
|
+
おそらく、`jusin`は受信イベントから呼ばれていて、メインスレッド以外のスレッドから実行されているのではないでしょうか。
|
8
8
|
|
9
9
|
|
10
10
|
|
11
11
|
この問題を解決するにはフォームの描画処理をメインスレッドに委譲する必要があります。
|
12
12
|
|
13
|
-
|
13
|
+
Windows Formsでは[Control.Invoke Method](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.control.invoke?view=netframework-4.8)で実現できます。
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
`richTextBox1.Text = rcvmsg;`をメインスレッドに処理を委譲する場合は下記のように書きます。
|
17
|
+
例として`richTextBox1.Text = rcvmsg;`をメインスレッドに処理を委譲する場合は下記のように書きます。
|
18
18
|
|
19
19
|
```C#
|
20
20
|
|
1
文章の修正
test
CHANGED
@@ -1,20 +1,22 @@
|
|
1
|
-
Windows Formsにおいて、フォームの描画を行うことができるスレッドはメインスレッド(UIスレッド)
|
1
|
+
Windows Formsにおいて、フォームの描画を行うことができるスレッドはメインスレッド(UIスレッド)のみです。
|
2
2
|
|
3
3
|
それ以外のスレッドからフォームの描画を行った場合は`InvalidOperationException`が発生します。
|
4
4
|
|
5
|
+
|
6
|
+
|
5
|
-
おそらく、jusinは外部からの受信イベントから呼ばれているのではないでしょうか。
|
7
|
+
おそらく、`jusin`は外部からの受信イベントから呼ばれているのではないでしょうか。
|
6
8
|
|
7
9
|
|
8
10
|
|
9
|
-
この問題を解決するには
|
11
|
+
この問題を解決するにはフォームの描画処理をメインスレッドに委譲する必要があります。
|
10
12
|
|
11
|
-
|
13
|
+
`Windows Forms`では[Control.Invoke Method](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.control.invoke?view=netframework-4.8)で実現できます。
|
12
14
|
|
13
15
|
|
14
16
|
|
15
|
-
|
17
|
+
`richTextBox1.Text = rcvmsg;`をメインスレッドに処理を委譲する場合は下記のように書きます。
|
16
18
|
|
17
|
-
```
|
19
|
+
```C#
|
18
20
|
|
19
21
|
Invoke((Action)(()=>{
|
20
22
|
|