private void Write(object o)
        {
            var ssWrit = o as SemaphoreSlim;

            string[] MyMessagesWri = new string[NumMessages];
            for (int j = 0; j < NumMessages; j++)
            {
                MyMessagesWri[j] = j.ToString();
            }
            int i = 0;

            while (i < NumMessages)
            {
                if (bEmpty)
                {
                    ssWrit.Wait();
                    if (bEmpty)
                    {
                        buffer = MyMessagesWri[i++];
                        bEmpty = false;
                    }
                    ssWrit.Release();
                }
            }
            ResultWri.Add(MyMessagesWri);
        }
Ejemplo n.º 2
0
        public void Write()
        {
            string[] MyMessagesWri = new string[NumMessages];
            for (int j = 0; j < NumMessages; j++)
            {
                MyMessagesWri[j] = j.ToString();
            }
            int i = 0;

            while (i < NumMessages)
            {
                if (bEmpty)
                {
                    buffer = MyMessagesWri[i++];
                    bEmpty = false;
                }
            }
            ResultWri.Add(MyMessagesWri);
        }
        private void Write()
        {
            string[] MyMessagesWri = new string[NumMessages];
            for (int j = 0; j < NumMessages; j++)
            {
                MyMessagesWri[j] = j.ToString();
            }
            int i = 0;

            while (i < NumMessages)
            {
                if (Interlocked.CompareExchange(ref intEmpty, 0, 1) == 1)
                {
                    buffer  = MyMessagesWri[i++];
                    intFull = 1;
                }
            }
            ResultWri.Add(MyMessagesWri);
        }
Ejemplo n.º 4
0
        public void Write(object state)
        {
            var evFull  = ((object[])state)[0] as AutoResetEvent;
            var evEmpty = ((object[])state)[1] as AutoResetEvent;

            string[] MyMessagesWri = new string[NumMessages];
            for (int j = 0; j < NumMessages; j++)
            {
                MyMessagesWri[j] = j.ToString();
            }
            int i = 0;

            while (i < NumMessages)
            {
                evEmpty.WaitOne();
                buffer = MyMessagesWri[i++];
                evFull.Set();
            }

            ResultWri.Add(MyMessagesWri);
        }