created FormsAppCache
This commit is contained in:
		@ -2,6 +2,7 @@
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
 | 
			
		||||
namespace ConsoleAppLock
 | 
			
		||||
@ -10,39 +11,91 @@ namespace ConsoleAppLock
 | 
			
		||||
    {
 | 
			
		||||
        private static List<int> intlist;
 | 
			
		||||
        private static object lockobject;
 | 
			
		||||
        private static ReaderWriterLockSlim rwls;
 | 
			
		||||
 | 
			
		||||
        static void Main(string[] args)
 | 
			
		||||
        {
 | 
			
		||||
            intlist = new List<int>();
 | 
			
		||||
            lockobject = new object();
 | 
			
		||||
 | 
			
		||||
            containsNumber(5);
 | 
			
		||||
            addNumber(8);
 | 
			
		||||
            rwls = new ReaderWriterLockSlim();
 | 
			
		||||
 | 
			
		||||
            Console.Read();
 | 
			
		||||
            while (true)
 | 
			
		||||
            {
 | 
			
		||||
                int intTemp;
 | 
			
		||||
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                     intTemp = Convert.ToInt32(Console.ReadLine());
 | 
			
		||||
                }
 | 
			
		||||
                catch (Exception e)
 | 
			
		||||
                {
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
               
 | 
			
		||||
 | 
			
		||||
                if (containsNumber(intTemp))
 | 
			
		||||
                {
 | 
			
		||||
                    Console.WriteLine("Add");
 | 
			
		||||
                    addNumber(intTemp);
 | 
			
		||||
                }
 | 
			
		||||
                else
 | 
			
		||||
                {
 | 
			
		||||
                    Console.WriteLine("Not Added");
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                printNumbers();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        static void containsNumber(int i)
 | 
			
		||||
        static bool containsNumber(int i)
 | 
			
		||||
        {
 | 
			
		||||
            if (!intlist.Contains(i))
 | 
			
		||||
            bool result = true;
 | 
			
		||||
            //lock (lockobject)
 | 
			
		||||
            rwls.EnterReadLock();
 | 
			
		||||
            {
 | 
			
		||||
                lock (lockobject)
 | 
			
		||||
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
                    
 | 
			
		||||
                    if (intlist.Contains(i))
 | 
			
		||||
                    {
 | 
			
		||||
                        result = false;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
                finally
 | 
			
		||||
                {
 | 
			
		||||
                    rwls.ExitReadLock();
 | 
			
		||||
                }
 | 
			
		||||
                intlist.Add(i);
 | 
			
		||||
            }
 | 
			
		||||
          // rwls.ExitReadLock();
 | 
			
		||||
            return result;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        static void addNumber(int i)
 | 
			
		||||
        {
 | 
			
		||||
 | 
			
		||||
            lock (lockobject)
 | 
			
		||||
            //lock (lockobject)
 | 
			
		||||
            rwls.EnterWriteLock();
 | 
			
		||||
            {
 | 
			
		||||
                
 | 
			
		||||
                intlist.Add(i);
 | 
			
		||||
            }
 | 
			
		||||
            rwls.ExitWriteLock();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
            intlist.Add(i);
 | 
			
		||||
 | 
			
		||||
        static void printNumbers()
 | 
			
		||||
        {
 | 
			
		||||
            Console.Write("Numbers: ");
 | 
			
		||||
 | 
			
		||||
            //lock (lockobject)
 | 
			
		||||
            rwls.EnterReadLock();
 | 
			
		||||
            {
 | 
			
		||||
                foreach (var VARIABLE in intlist)
 | 
			
		||||
                {
 | 
			
		||||
                    Console.Write(VARIABLE + " ");
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            rwls.ExitReadLock();
 | 
			
		||||
            Console.WriteLine("");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user