예제 #1
0
        public byte[] GetRandomData(int dataSize, int byteDoneToRaiseEvent)
        {
            var rdm   = new Random();
            int value = rdm.Next();

            if (dataSize < 0)
            {
                throw new ArgumentOutOfRangeException(nameof(dataSize));
            }

            if (byteDoneToRaiseEvent < 0)
            {
                throw new ArgumentOutOfRangeException(nameof(byteDoneToRaiseEvent));
            }

            var array = new byte[dataSize];

            for (int i = 0; i < array.Length; i++)
            {
                array[i] = (byte)rdm.Next();
                if (i % byteDoneToRaiseEvent == 0)
                {
                    RandomDataGenerating?.Invoke(this, new RDG(i + 1, dataSize));
                }
            }
            RandomDataGenerated?.Invoke(this, null);
            return(array);
        }
예제 #2
0
        public byte[] GetRandomData(int dataSize, int bytesDoneToRaiseEvent)

        {
            if (dataSize < bytesDoneToRaiseEvent)
            {
                throw new InvalidOperationException();
            }

            if (bytesDoneToRaiseEvent <= 0)
            {
                throw new InvalidOperationException();
            }

            //if (bytesDoneToRaiseEvent <= dataSize)
            //	throw new InvalidOperationException();
            var random = new Random();

            byte[] result = new byte[dataSize];
            byte[] pack   = new byte[bytesDoneToRaiseEvent];

            int fullPacksCount = dataSize / bytesDoneToRaiseEvent;
            int lastPackSize   = dataSize % bytesDoneToRaiseEvent;


            for (int i = 0; i < fullPacksCount; i++)
            {
                random.NextBytes(pack);
                pack.CopyTo(result, i * bytesDoneToRaiseEvent);

                RandomDataGenerated?.Invoke((i + 1) * bytesDoneToRaiseEvent, dataSize);
            }

            if (lastPackSize > 0)
            {
                random.NextBytes(pack);
                Array.Copy(pack, 0, result, fullPacksCount * bytesDoneToRaiseEvent, lastPackSize);
            }

            return(result);
        }
예제 #3
0
        public byte[] GetRandomData(int dataSize, int bytesDoneToRaiseEvent)
        {
            if (dataSize <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(dataSize));
            }
            if (bytesDoneToRaiseEvent <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(bytesDoneToRaiseEvent));
            }
            var bytes  = new byte[dataSize];
            var random = new Random();

            for (int i = 0; i < bytes.Length; i++)
            {
                bytes[i] = (byte)random.Next();
                if (i % bytesDoneToRaiseEvent == 0)
                {
                    RandomDataGenerating?.Invoke(this, new RandomDatageneraorEventArgs(i, dataSize));
                }
            }
            RandomDataGenerated?.Invoke(this, null);
            return(bytes);
        }
예제 #4
0
 protected virtual void OnRandomDataGenerated(object sender, RandomDataGeneratedEventArgs e)
 {
     RandomDataGenerated?.Invoke(sender, e);
 }