質問編集履歴

2

質問内容を修正

2018/09/14 23:54

投稿

poge
poge

スコア15

test CHANGED
File without changes
test CHANGED
@@ -3,6 +3,58 @@
3
3
  C# 7.0
4
4
 
5
5
  .NET Framework 4.6.1
6
+
7
+
8
+
9
+ ※質問の内容が悪かったようなので、コードを更新しました。
10
+
11
+
12
+
13
+ 以下コードにて、Web上をクロールしながら、
14
+
15
+ 並行してCSVのダウンロードを行おうとしています。
16
+
17
+ ```C#
18
+
19
+ var taskList = new List<Task<bool>>();
20
+
21
+ while(true){
22
+
23
+ webをクロールする処理
24
+
25
+ taskList.Add(Task.Run(()=> CSVファイルをダウンロードする処理));
26
+
27
+ 終了条件を満たすとbreak
28
+
29
+ }
30
+
31
+ Task.WaitAll(taskList);
32
+
33
+ ```
34
+
35
+ CSVをダウンロードする処理は、クロール中も並行して行い、
36
+
37
+ クロール完了後にダウンロードが残っている場合には、終了を待機します。
38
+
39
+
40
+
41
+ 上記のコードで要件は満たしているのですが、スペックの低いPCで実行するため、
42
+
43
+ CSVファイルをダウンロードする処理が複数並列して走らないようにしたいです。
44
+
45
+ また、可能であれば、CSVファイルのダウンロードは、taskListに追加した順に実行したいです。
46
+
47
+
48
+
49
+ イメージとしては、1つのスレッドに対して、ダウンロードのキューを追加していきたいです。
50
+
51
+
52
+
53
+
54
+
55
+ ===
56
+
57
+ 以下、元の質問
6
58
 
7
59
 
8
60
 

1

初心者マーク

2018/09/14 23:54

投稿

poge
poge

スコア15

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,11 @@
1
+ 環境
2
+
3
+ C# 7.0
4
+
5
+ .NET Framework 4.6.1
6
+
7
+
8
+
1
9
  以下のコードにて、ループで実行したい処理を100回回し切ったのちに、
2
10
 
3
11
  100個の重い処理が全て完了するまで待機しています。