- ベストアンサー
C#で、優先順位をつけてメソッドの呼び出しを調整したいのですが、どんな
C#で、優先順位をつけてメソッドの呼び出しを調整したいのですが、どんな方法があるでしょうか? ・メソッドA,B,Cがある ・共通に利用するメソッドQがある ・A,B,Cは、別々のスレッドからメソッドQを呼び出す ・他のメソッドがQを利用している間は、B、Cは待ち状態にしたい ・A>B>Cの優先順位があり、BがQを使用していて、Cが待ち状態の時、その後AがメソッドQを利用を要求したら、次にQを使えるのはAにしたい どうぞよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
まじめに頑張るなら PriorityQueue. 手を抜くなら「どうせ優先順位は 3つしかない」と思って配列 + 適当なリスト構造.
その他の回答 (2)
- zwi
- ベストアンサー率56% (730/1282)
回答No.2
>キューに利用要求を入れても、入れた順にしか取り出せないので、優先度を付けられないと思うのですが、、 既にあるクラスを利用するのではなくて、キューの管理クラスを自分で作成するんです。 キューのアルゴリズムは分かりますよね? スレッドセーフに組むこともお忘れ無く。
- zwi
- ベストアンサー率56% (730/1282)
回答No.1
メソッドQの利用要求キューを作って、利用要求が許可されたらメソッドQを処理するってのはどうでしょう? キューからの取り出し時は、A>B>Cの優先順位で処理すれば良いと思います。
質問者
補足
回答ありがとうございます。 Queueクラスを使用するのでしょうか? 以前Queueクラスが使えないか調べたとき、キューへの取り出し(Deque)は、入れた順(Enque)にしか取り出せないようですよね?。 キューに利用要求を入れても、入れた順にしか取り出せないので、優先度を付けられないと思うのですが、、
お礼
回答ありがとうございました。