目的のワークフロー適した静的なデータ構造
まず、私は巨大からの質問と回答の特定のセットを取得したいですSQL Serverの(テーブルのtblQuestionsとtblAnswers)に保存された質問と回答のセット
フェッチされた質問とそれに対応する答えは、静的なコレクションに格納されます(いずれかのキーがクイズイドと値になります
List<Quiz>
またはhashmap<key,value>
はQNSのコレクションになりますとAnshttpリクエストごとに、固有のQuestionIdに基づいて特定の質問とその回答を提供する必要があります。
多くの学生が同じクイズで試験に参加するので、同じクイズを繰り返しDBから取得する必要はありませんが、別のストリームの他の生徒がクイズを開始する場合は、クイズが終わったか、管理者がオフになったらDBから、彼と
5.サーバーの同じ静的コレクションにクイズのセットを、それを保存するには、静的なコレクションから削除されます。
基本的には、適切なデータベース構造が何であるかを知りたいと思っています。私はシングルトンパターンで残ることを望む、ともそれはクイズ
class Quiz
{
int QuizId; //QuizId
string QuizTitle; // Example - C# Quiz
List<QuestionAns> qnsAns; // List of Questiona and answers related to this Quiz
}
class QuestionAns
{
int QuestionId; //unique QuestionId
string Question; // Question Text
List<Answers> answers; //answers to this question (can be more than one)
}
class Answer
{
int AnswerId; //unique AnswerId
string Answer;//Answer Text
bool isRight;//Is this Answer right
}
の例モデル
ロックを介して、または任意の他のメカニズムのいずれかのスレッドセーフにしたい今、私は実際にクイズのスレッドセーフリストを作成したいですlike
List<Quiz>
これを実行する方法や他の多くの適切なメカニズムがありますか?私はWebアプリケーション固有のデータ構造に関する非常に良い知識を持っていません。
ヨは、2つのオプションがあり
public sealed class Singleton
{
private static readonly Lazy<Singleton> lazy =
new Lazy<Singleton>(() => new Singleton());
public static Singleton Instance { get { return lazy.Value; } }
private Singleton()
{
}
}
はい私はこのConcurrentBagコレクションについても考えましたが、実際には私はこのコレクションの効率性を認識しておらず、ワークフローを非常に典型的なものにしているかどうかも知りたいと思います。私は、スレッドセーフティーは本当にこのタイプの問題の問題であると言うことを意味します。 – Abhi
はいこの方法でのチューダーのロックは、私が思う良いオプションの1つになります。 – Abhi
@Abhishek Gupta:あなたの展覧会で述べたように、 Quiz'オブジェクトを同時にリストに追加する必要があります。この場合、アクセスを同期させる必要があります。 – Tudor