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

質問編集履歴

6

2016/11/21 10:51

投稿

syogakusya
syogakusya

スコア67

title CHANGED
File without changes
body CHANGED
@@ -21,4 +21,6 @@
21
21
  キュー自体はデキューを延々と繰り返し、データを受信すると別スレッドからエンキューもされるので、多分並列処理は違います。
22
22
  同期で待機するとその間キュー自体が止まっちゃうので、待つやつに関してはawait Task.delay(6000)したいです。
23
23
  待つやつ以外に待たないオブジェクトもキューに入ってます。
24
- 待つやつ・待たないやつはデータ受信時にそれぞれ生成してキューに入れてます。
24
+ 待つやつ・待たないやつはデータ受信時にそれぞれ生成してキューに入れてます。
25
+ 継承的には「やつ」抽象クラスと「待つやつ」「待たないやつ」具象クラスがいます。
26
+ キューは「やつ」のキューです。

5

2016/11/21 10:51

投稿

syogakusya
syogakusya

スコア67

title CHANGED
File without changes
body CHANGED
@@ -17,5 +17,8 @@
17
17
  ちなみにキューの処理に影響があったりしますか?別スレッドだからないのでしょうか?
18
18
 
19
19
  ##追記その3
20
- やりたいことをちゃんと書かずにすみません。やりたいのはキューからとってきたオブジェクトのうち、一部を60秒またせるかんじです。
20
+ やりたいことをちゃんと書かずにすみません。やりたいのはキューからとってきたオブジェクトのうち、一部を6秒またせるかんじです。
21
- キュー自体はデキューを延々と繰り返しますし、データを受信すると別スレッドからエンキューもされるので、多分並列処理は違います。
21
+ キュー自体はデキューを延々と繰り返し、データを受信すると別スレッドからエンキューもされるので、多分並列処理は違います。
22
+ 同期で待機するとその間キュー自体が止まっちゃうので、待つやつに関してはawait Task.delay(6000)したいです。
23
+ 待つやつ以外に待たないオブジェクトもキューに入ってます。
24
+ 待つやつ・待たないやつはデータ受信時にそれぞれ生成してキューに入れてます。

4

2016/11/21 10:50

投稿

syogakusya
syogakusya

スコア67

title CHANGED
File without changes
body CHANGED
@@ -14,4 +14,8 @@
14
14
  すみません。Task.Delay()でした。それを行ったあと、await Task.Delay(6000)を行ったあと、データの送信などの処理をしてます。そんなメソッドをもつオブジェクトがいて、そのオブジェクトをキューからばんばん取り出してそのメソッドを呼んでます。
15
15
 
16
16
  ##追記その2
17
- ちなみにキューの処理に影響があったりしますか?別スレッドだからないのでしょうか?
17
+ ちなみにキューの処理に影響があったりしますか?別スレッドだからないのでしょうか?
18
+
19
+ ##追記その3
20
+ やりたいことをちゃんと書かずにすみません。やりたいのはキューからとってきたオブジェクトのうち、一部を60秒またせるかんじです。
21
+ キュー自体はデキューを延々と繰り返しますし、データを受信すると別スレッドからエンキューもされるので、多分並列処理は違います。

3

2016/11/21 10:46

投稿

syogakusya
syogakusya

スコア67

title CHANGED
File without changes
body CHANGED
@@ -11,4 +11,7 @@
11
11
  そのときはイベントに登録されるメソッドを書いていたのですが、メソッドの処理が早く終わって呼び出し元に戻らないといけないという状況になり、元々のメソッド内の処理を丸ごとawait Task.Runの中に入れたのですが、そのときにその例外が起きました。
12
12
 
13
13
  ##追記
14
- すみません。Task.Delay()でした。それを行ったあと、await Task.Delay(6000)を行ったあと、データの送信などの処理をしてます。そんなメソッドをもつオブジェクトがいて、そのオブジェクトをキューからばんばん取り出してそのメソッドを呼んでます。
14
+ すみません。Task.Delay()でした。それを行ったあと、await Task.Delay(6000)を行ったあと、データの送信などの処理をしてます。そんなメソッドをもつオブジェクトがいて、そのオブジェクトをキューからばんばん取り出してそのメソッドを呼んでます。
15
+
16
+ ##追記その2
17
+ ちなみにキューの処理に影響があったりしますか?別スレッドだからないのでしょうか?

2

2016/11/21 05:43

投稿

syogakusya
syogakusya

スコア67

title CHANGED
File without changes
body CHANGED
@@ -8,4 +8,7 @@
8
8
 
9
9
  ##補足
10
10
  前に同期のコードを非同期にしたときにoutofmemoryが発生したため質問しました。
11
- そのときはイベントに登録されるメソッドを書いていたのですが、メソッドの処理が早く終わって呼び出し元に戻らないといけないという状況になり、元々のメソッド内の処理を丸ごとawait Task.Runの中に入れたのですが、そのときにその例外が起きました。
11
+ そのときはイベントに登録されるメソッドを書いていたのですが、メソッドの処理が早く終わって呼び出し元に戻らないといけないという状況になり、元々のメソッド内の処理を丸ごとawait Task.Runの中に入れたのですが、そのときにその例外が起きました。
12
+
13
+ ##追記
14
+ すみません。Task.Delay()でした。それを行ったあと、await Task.Delay(6000)を行ったあと、データの送信などの処理をしてます。そんなメソッドをもつオブジェクトがいて、そのオブジェクトをキューからばんばん取り出してそのメソッドを呼んでます。

1

2016/11/21 05:40

投稿

syogakusya
syogakusya

スコア67

title CHANGED
File without changes
body CHANGED
@@ -4,4 +4,8 @@
4
4
  キューにオブジェクトが10万個ある場合、10万個のオブジェクトの全てが順番にTask.Wait(6000)を実行し、すぐにキューは空っぽになります。60秒後にキューは空っぽのままで10万個のオブジェクトで実際の処理が一斉に(Taskの仕様まかせ)処理を再開するようなイメージです。
5
5
  パフォーマンスとかはいいのですが、10万ものタスクを生成したらメモリを食い過ぎたりしないでしょうか?
6
6
  100万、1000万と増えていった場合はどうなるでしょうか?
7
- お願いいたします。
7
+ お願いいたします。
8
+
9
+ ##補足
10
+ 前に同期のコードを非同期にしたときにoutofmemoryが発生したため質問しました。
11
+ そのときはイベントに登録されるメソッドを書いていたのですが、メソッドの処理が早く終わって呼び出し元に戻らないといけないという状況になり、元々のメソッド内の処理を丸ごとawait Task.Runの中に入れたのですが、そのときにその例外が起きました。