コード例 #1
0
            public static void GenerateUniqueKey(int Count)
            {
                int i = 0;

                while (i < Count)
                {
                    int Key = GetUniqueKey(true);

                    //비유효 키가 아니면
                    if (Key != Const.Invalidkey)
                    {
                        ReturnedKeySet.Enqueue(Key);
                        ++i;
                    }
                    else
                    {
                        continue;
                    }
                }
            }
コード例 #2
0
            public static int GetUniqueKey()
            {
                //이미 발행되어진 키 값중 반환된 값이 있을 경우
                if (ReturnedKeySet.Count > 0)
                {
                    int  Key;
                    bool IsSuccess = ReturnedKeySet.TryDequeue(out Key);

                    if (IsSuccess == true)
                    {
                        return(Key);
                    }
                    else
                    {
                        return(Const.Invalidkey);
                    }
                }
                //없을 경우 새로 발행
                else
                {
                    return(Interlocked.Increment(ref KeyCount));
                }
            }
コード例 #3
0
 public static void ReturnUniqueKey(int PublishedUniqueKey)
 {
     ReturnedKeySet.Enqueue(PublishedUniqueKey);
 }