回答編集履歴

5

追記

2020/05/26 00:37

投稿

退会済みユーザー
test CHANGED
@@ -33,3 +33,5 @@
33
33
 
34
34
 
35
35
  等、色々考慮しないといけない事も増えますので注意が必要です。
36
+
37
+ また、中断まで考慮するなら、File.Copy を FileStream での読み書きに変更したほうが良いかもしれません。

4

少し修正

2020/05/26 00:37

投稿

退会済みユーザー
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  ```C#
10
10
 
11
- var cmdTask = Task.Run(() =>
11
+ var copyTask = Task.Run(() =>
12
12
 
13
13
  {
14
14
 
@@ -20,11 +20,9 @@
20
20
 
21
21
  });
22
22
 
23
-
24
-
25
23
  ```
26
24
 
27
- 上記サンプルコードは、重そうな処理だけ単純に別タスクを起動する例ですが、実際は
25
+ 上記サンプルコードは、重そうな処理だけTaskで起動する例ですが、実際は
28
26
 
29
27
  - 既にTaskを実行中か
30
28
 

3

少し修正

2020/05/26 00:15

投稿

退会済みユーザー
test CHANGED
@@ -32,4 +32,6 @@
32
32
 
33
33
  - Task中の例外処理
34
34
 
35
+
36
+
35
37
  等、色々考慮しないといけない事も増えますので注意が必要です。

2

追記

2020/05/26 00:12

投稿

退会済みユーザー
test CHANGED
@@ -3,3 +3,33 @@
3
3
 
4
4
 
5
5
  実行時間が長時間掛かるメソッドをUIスレッドで実行すると、メソッドが終了するまでフォーム全体の処理が停止しますので、Task.Run等を使用して非同期で実行する必要があります。
6
+
7
+
8
+
9
+ ```C#
10
+
11
+ var cmdTask = Task.Run(() =>
12
+
13
+ {
14
+
15
+ const string commandMount = @"/c net use \servername\kyouyu password /user:user /PERSISTENT:NO";
16
+
17
+ ExecuteCommand(commandMount);
18
+
19
+ CopyFiles(@".\test.txt", @"\servername\kyouyu\testbigfile");
20
+
21
+ });
22
+
23
+
24
+
25
+ ```
26
+
27
+ 上記サンプルコードは、重そうな処理だけ単純に別タスクを起動する例ですが、実際は
28
+
29
+ - 既にTaskを実行中か
30
+
31
+ - Taskをどうやって中断させるか
32
+
33
+ - Task中の例外処理
34
+
35
+ 等、色々考慮しないといけない事も増えますので注意が必要です。

1

少し修正

2020/05/26 00:12

投稿

退会済みユーザー
test CHANGED
@@ -1 +1,5 @@
1
+ > ダウンロード処理を走らせない場合は、一定時間放置しても、ディスプレイ電源offや強制ログオフは起こらなかったんですが、ダウンロード処理を走らせますと、プログラムが応答なしとなり
2
+
3
+
4
+
1
5
  実行時間が長時間掛かるメソッドをUIスレッドで実行すると、メソッドが終了するまでフォーム全体の処理が停止しますので、Task.Run等を使用して非同期で実行する必要があります。