示例#1
0
            public void ThreadMethodToRun(object obj)
            {
                int count      = 1;
                int searchItem = 10;
                int num        = 0;

                Monitor.Enter(this);
                try

                {
                    MyWrapperClass parameter = (MyWrapperClass)obj;
                    //Console.WriteLine("parameter.start = " + parameter.start + " , parameter.end =  " + (parameter.end));
                    for (int i = parameter.start; i < parameter.end; i++)
                    {
                        if (parameter.mylist[i] == searchItem)
                        {
                            total++;
                        }
                    }
                    //total += num;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                finally
                {
                    Monitor.Exit(this);
                }
            }
            public void ThreadMethodToRun(object obj)
            {
                int            count      = 1;
                int            searchItem = 10;
                int            num        = 0;
                MyWrapperClass parameter  = (MyWrapperClass)obj;

                //Console.WriteLine("parameter.start = " + parameter.start + " , parameter.end =  " + (parameter.end));
                for (int i = parameter.start; i < parameter.end; i++)
                {
                    if (parameter.mylist[i] == searchItem)
                    {
                        num++;
                    }
                }
                total += num;
            }
示例#3
0
        public static void ThreadSearching(List <int> mylist)
        {
            Stopwatch stopwatch = Stopwatch.StartNew();
            int       tempstart = 0;
            int       avg       = (int)mylist.Count / 5;

            for (int i = 0; i < 5; i++)
            {
                int            tempEnd   = (int)(tempstart + avg);
                MyWrapperClass parameter = new MyWrapperClass(tempstart, tempEnd, mylist); // get parameter value
                tempstart += avg;
                Thread thread = new Thread(new ParameterizedThreadStart(parameter.ThreadMethodToRun));
                thread.Start(parameter);
                Console.WriteLine("Total : " + parameter.getTotal());
            }
            stopwatch.Stop();
            Console.WriteLine("Thread total time =  " + stopwatch.ElapsedMilliseconds);
        }
 public void SequentialThreadMethodToRun(object obj)
 {
     Monitor.Enter(this);
     try
     {
         int            count      = 1;
         int            searchItem = 10;
         int            num        = 0;
         MyWrapperClass parameter  = (MyWrapperClass)obj;
         //Console.WriteLine("parameter.start = " + parameter.start + " , parameter.end =  " + (parameter.end));
         for (int i = parameter.start; i < parameter.end; i++)
         {
             if (parameter.mylist[i] == searchItem)
             {
                 num++;
             }
         }
         total += num;
     }
     finally
     {
         Monitor.Exit(this);
     }
 }