回答編集履歴

5

修正

2019/02/20 09:59

投稿

kiichi54321
kiichi54321

スコア1984

test CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  {
42
42
 
43
- if (await semaphore.WaitAsync(5))
43
+ if (await semaphore.WaitAsync(0))
44
44
 
45
45
  {
46
46
 

4

更に修正

2019/02/20 09:59

投稿

kiichi54321
kiichi54321

スコア1984

test CHANGED
@@ -40,13 +40,17 @@
40
40
 
41
41
  {
42
42
 
43
- await semaphore.WaitAsync();
43
+ if (await semaphore.WaitAsync(5))
44
44
 
45
- Console.WriteLine(iIdx.ToString());
45
+ {
46
46
 
47
- await Task.Delay(20000);
47
+ Console.WriteLine(iIdx.ToString());
48
48
 
49
+ await Task.Delay(20000);
50
+
49
- semaphore.Release();
51
+ semaphore.Release();
52
+
53
+ }
50
54
 
51
55
  }
52
56
 

3

追記

2019/02/20 09:50

投稿

kiichi54321
kiichi54321

スコア1984

test CHANGED
@@ -34,15 +34,21 @@
34
34
 
35
35
 
36
36
 
37
- async Task My_Func(int iIdx)
37
+ SemaphoreSlim semaphore = new SemaphoreSlim(0, 1);
38
38
 
39
- {
39
+ async Task My_Func(int iIdx)
40
40
 
41
- Console.WriteLine(iIdx.ToString());
41
+ {
42
42
 
43
- await Task.Delay(20000);
43
+ await semaphore.WaitAsync();
44
44
 
45
+ Console.WriteLine(iIdx.ToString());
46
+
47
+ await Task.Delay(20000);
48
+
49
+ semaphore.Release();
50
+
45
- }
51
+ }
46
52
 
47
53
  ```
48
54
 

2

追記

2019/02/20 09:37

投稿

kiichi54321
kiichi54321

スコア1984

test CHANGED
@@ -51,3 +51,13 @@
51
51
  こんな感じか。
52
52
 
53
53
  どうやって止めるのだろう?とか素朴な疑問はあるけど。
54
+
55
+
56
+
57
+ # 追記
58
+
59
+
60
+
61
+ SemaphoreSlim を使えば解決じゃないかな
62
+
63
+ [SemaphoreSlim を使って並列実行を制御する](https://qiita.com/TsuyoshiUshio@github/items/79ad787899cddaa3ac1c)

1

修正

2019/02/20 09:03

投稿

kiichi54321
kiichi54321

スコア1984

test CHANGED
@@ -1,6 +1,6 @@
1
1
  ```ここに言語を入力
2
2
 
3
- private async void button1_Click(object sender, EventArgs e)
3
+ private void button1_Click(object sender, EventArgs e)
4
4
 
5
5
  {
6
6
 
@@ -18,7 +18,7 @@
18
18
 
19
19
  iIdx++;
20
20
 
21
- await My_Func(iIdx)
21
+ await My_Func(iIdx);
22
22
 
23
23
  Console.WriteLine("処理1");
24
24
 
@@ -48,4 +48,6 @@
48
48
 
49
49
 
50
50
 
51
- こんな感じか
51
+ こんな感じか
52
+
53
+ どうやって止めるのだろう?とか素朴な疑問はあるけど。