当前位置: 首页>>代码示例>>C#>>正文


C# Port.Post方法代码示例

本文整理汇总了C#中Port.Post方法的典型用法代码示例。如果您正苦于以下问题:C# Port.Post方法的具体用法?C# Port.Post怎么用?C# Port.Post使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Port的用法示例。


在下文中一共展示了Port.Post方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Clear

        public void Clear()
        {
            var p = new Port<int> ();

            p.Post (10);
            p.Post (10);
            Assert.AreEqual (2, p.ItemCount, "#1");
            p.Clear ();
            Assert.AreEqual (0, p.ItemCount, "#2");
            p.Clear ();
            Assert.AreEqual (0, p.ItemCount, "#3");
        }
开发者ID:kumpera,项目名称:Ccr,代码行数:12,代码来源:PortTest.cs

示例2: Mul

        static void Mul(InputData data, Port<int> resp)
         {
             int i, j;
             System.Diagnostics.Stopwatch sWatch = new System.Diagnostics.Stopwatch();
             sWatch.Start();


            for (i = data.start; i <= data.stop-1; i++)
             {
                 for (j = i+1; j <= data.stop; j++)
                 {
                      if (a[j] < a[i]) //сортировка пузырьком
                    {
                        var temp = a[i];
                        a[i] = a[j];
                        a[j] = temp;
                    }
                }
             }
            //внимательно присмотревшись к этой функции и к условиям, в которых она вызывается, можно сделать вывод
            //что она вернет массив, состоящий из двух сортированных половинок, но не сортированный целиком
            //так оно и есть, потому что параллельный пузырек - необычная задумка
            //в данной лабораторной работе эта проблема решается в делегате, описанном в приемнике, штатными средствами C#
             sWatch.Stop();
             resp.Post(1);
             Console.WriteLine("Поток № {0}: Параллельный алгоритм = {1} мс.", Thread.CurrentThread.ManagedThreadId, sWatch.ElapsedMilliseconds.ToString());
        }
开发者ID:AldenSeries,项目名称:TDDP_lab,代码行数:27,代码来源:Program.cs

示例3: Mul

        static void Mul(InputData data, Port<int> resp)
         {
            long Result = 0;
            int i = 0;
             System.Diagnostics.Stopwatch sWatch = new System.Diagnostics.Stopwatch();
            Random r = new Random();
            for (int j = 0; j < n; j++)
            {
                a[j] = r.Next(1, 3);
                b[j] = r.Next(1, 3);

            }
            long ResultA = 1;
            long ResultB = 1;
            long Res = 0;
            sWatch.Start();
             for (i = data.start; i <= data.stop; i++)
             {

                ResultA = ResultA * a[i];
                ResultB = ResultB * b[i];
                ResultA = ResultA / 25;
                ResultArr[i] = ResultA + ResultB;
                Res = Res + ResultArr[i];

            }
             sWatch.Stop();  
             resp.Post(1);
            

                 Console.WriteLine("Поток № {0}: Параллельный алгоритм = {1} мс.", Thread.CurrentThread.ManagedThreadId, sWatch.ElapsedMilliseconds.ToString());
        }
开发者ID:AldenSeries,项目名称:TDDP_lab,代码行数:32,代码来源:Program.cs

示例4: Mul

        static void Mul(InputData data, Port<int> resp)
         {
             int i;
             double Pi = 0,dx=0,x=0;
             System.Diagnostics.Stopwatch sWatch = new System.Diagnostics.Stopwatch();
             sWatch.Start();
             dx = 1 / 10000000.0;
             x = data.start / 10000000.0;
             for (i = data.start; i <= data.stop; i++)

             {

                 Pi += Math.Sqrt(1 - x * x)*4*dx;
                 x += dx;
             }


             Console.WriteLine("часть Pi №{0} = {1}", Thread.CurrentThread.ManagedThreadId,Pi);
             
             sWatch.Stop();  
             resp.Post(1);
            
                
                 Console.WriteLine("Поток № {0}: Параллельный алгоритм = {1} мс.", Thread.CurrentThread.ManagedThreadId, sWatch.ElapsedMilliseconds.ToString());

        }
开发者ID:AldenSeries,项目名称:TDDP_lab,代码行数:26,代码来源:Program.cs

示例5: Run

        private static void Run(int n, int threadCount)
        {
            Dispatcher d = new Dispatcher(threadCount, "ccr pool");
            DispatcherQueue dq = new DispatcherQueue("disp", d);
            Port<int> p1 = new Port<int>(),  p2 = new Port<int>();
            EventWaitHandle done1 = new AutoResetEvent(false), done2 = new AutoResetEvent(false);

            PingPonger pp1 = new PingPonger(done1, n, p2),
                pp2 = new PingPonger(done2, n, p1);

            Arbiter.Activate(dq, Arbiter.Interleave(
                new TeardownReceiverGroup(),
                new ExclusiveReceiverGroup(Arbiter.Receive(true, p1, pp1.Update)),
                new ConcurrentReceiverGroup()));

            Arbiter.Activate(dq, Arbiter.Interleave(
                new TeardownReceiverGroup(),
                new ExclusiveReceiverGroup(Arbiter.Receive(true, p2, pp2.Update)),
                new ConcurrentReceiverGroup()));

            p1.Post(0);

            EventWaitHandle.WaitAll(new[] { done1, done2 });

            dq.Dispose();
            d.Dispose();
        }
开发者ID:patrickcooney,项目名称:code,代码行数:27,代码来源:Program.cs

示例6: Mul

        static void Mul(InputData data, Port<int> resp)
        {
            int Result = 0;
            int i = 0;
            System.Diagnostics.Stopwatch sWatch = new System.Diagnostics.Stopwatch();
            Random r = new Random();
            for (int j = 0; j < n; j++)
                a[j] = r.Next(5);
            sWatch.Start();
            
                for (i = data.start; i <= data.stop; i++)
                {

                    Result = Result + a[i];

                }
        
             resp.Post(1);

            
            Console.WriteLine("Поток № {0}: Параллельный алгоритм = {1} мс.", Thread.CurrentThread.ManagedThreadId, sWatch.ElapsedMilliseconds.ToString());
            sWatch.Stop();
            Console.WriteLine("Сумма:");
            Console.WriteLine(Result);
        }
开发者ID:AldenSeries,项目名称:TDDP_lab,代码行数:25,代码来源:Parallel.cs

示例7: thread_fun

 //Функция-нить исполнения
 //Принимает в виде аргумента контейнер с заданием, 
 //сортирует часть массива
 //Посылает сообщение в порт
 static void thread_fun(InputData d, Port<int> resp)
 {
     Stopwatch sWatch = new Stopwatch();
     sWatch.Start();
     qsort(d.array, d.start, d.stop);
     sWatch.Stop();
     Console.WriteLine(d.str+"Время работы: "+ sWatch.ElapsedMilliseconds);
     resp.Post(1);
 }
开发者ID:AldenSeries,项目名称:TDDP_lab,代码行数:13,代码来源:Program.cs

示例8: task

        static void task(InputData d, Port<int> resp)
        {
           
            d.result = PerformIntegral(d.start, d.stop, d.n);
            Console.WriteLine(d.str);
            Console.WriteLine("Начало: "+d.start+" конец: "+d.stop);
            Console.WriteLine("Результат на текущем шаге: " + d.result);
            mRes = mRes + d.result; //формируем общий результат

            resp.Post(1);
        }
开发者ID:AldenSeries,项目名称:TDDP_lab,代码行数:11,代码来源:Program.cs

示例9: CleanedUpReceiverReturnsTask

        public void CleanedUpReceiverReturnsTask()
        {
            var p = new Port<int> ();
            IPortReceive ipr = p;
            VoidDispatcherQueue dq = new VoidDispatcherQueue ();
            ReceiverTask rt = new EvalTask (true, new NullTask ());
            rt.State = ReceiverTaskState.CleanedUp;
            rt.TaskQueue = dq;
            ipr.RegisterReceiver (rt);

            Assert.AreEqual (1, ipr.GetReceivers ().Length, "#1");
            p.Post (10);
            Assert.AreEqual (1, dq.queuedTasks, "#2");
            Assert.AreEqual (0, ipr.GetReceivers ().Length, "#3");
        }
开发者ID:kumpera,项目名称:Ccr,代码行数:15,代码来源:PortTest.cs

示例10: Mul

 static void Mul(InputData data, Port<int> resp)
  {
      int min2 = A[0], max2 = A[0], i;
      System.Diagnostics.Stopwatch sWatch = new System.Diagnostics.Stopwatch();
      sWatch.Start();  // запуск секундомера
      for (i = data.start; i <= data.stop; i++)
      {                                
              if (A[i] < min2)
                  min2 = A[i];   
              if (A[i] > max2)
                  max2 = A[i];   
      }
      sWatch.Stop();  // отключение секундомера
      resp.Post(1);
          Console.WriteLine(min2);
          Console.WriteLine(max2);
          Console.WriteLine("Поток № {0}: Параллельный алгоритм = {1} мс.", Thread.CurrentThread.ManagedThreadId, sWatch.ElapsedMilliseconds.ToString());
 }
开发者ID:AldenSeries,项目名称:TDDP_lab,代码行数:18,代码来源:Program.cs

示例11: ReceiveWithElementOnThePort

        public void ReceiveWithElementOnThePort()
        {
            Port<int> port = new Port<int> ();
            IPortReceive portRec = port;
            port.Post (10);

            var receiver = port.Receive ();
            var dq = new VoidDispatcherQueue ();
            receiver.TaskQueue = dq;

            Assert.IsNull (receiver.Arbiter, "#1");
            Assert.AreEqual (ReceiverTaskState.Onetime, receiver.State, "#2");

            Assert.IsNull (receiver.Execute (), "#3");
            Assert.AreEqual (ReceiverTaskState.Onetime, receiver.State, "#4");

            IPortReceive rec = port;
            Assert.AreEqual (1, rec.GetReceivers ().Length, "#5");
        }
开发者ID:kumpera,项目名称:Ccr,代码行数:19,代码来源:PortExtensionsTest.cs

示例12: ParSearch

        static void ParSearch(Data data, Port<int> p)
        {
            int min2 = arr[0], max2 = arr[0];
            System.Diagnostics.Stopwatch sWatch = new System.Diagnostics.Stopwatch();
            sWatch.Start();
            for (int i = data.start; i <= data.stop; i++)
            {
                if (arr[i] < min2)
                    min2 = arr[i];

                if (arr[i] > max2)
                    max2 = arr[i];
            }
            sWatch.Stop();
            p.Post(1);

            Console.WriteLine(min2);
            Console.WriteLine(max2);
            Console.WriteLine("P {0}: Time of ParSearch {1} ms.", Thread.CurrentThread.ManagedThreadId, sWatch.ElapsedMilliseconds.ToString());
        }
开发者ID:AldenSeries,项目名称:TDDP_lab,代码行数:20,代码来源:Program.cs

示例13: Mul

 static void Mul(InputData data, Port<int> resp)
  {
      int i, j;
      System.Diagnostics.Stopwatch sWatch = new System.Diagnostics.Stopwatch();
      sWatch.Start();
      for (i = data.start; i <= data.stop; i++)
      {
          for (j = i; i <= data.stop; i++)
          {
               if (a[j] > a[j+1]) {
          int b = a[j]; //change for elements
          a[j] = a[j+1];
          a[j+1] = b;
               }
          }
      }
      sWatch.Stop();  
      resp.Post(1);            
          Console.WriteLine("Поток № {0}: Параллельный алгоритм = {1} мс.", Thread.CurrentThread.ManagedThreadId, sWatch.ElapsedMilliseconds.ToString());
 }
开发者ID:AldenSeries,项目名称:TDDP_lab,代码行数:20,代码来源:Program.cs

示例14: Mul

        static void Mul(InputData data, Port<int> resp)
         {
             int i, j;
             System.Diagnostics.Stopwatch sWatch = new System.Diagnostics.Stopwatch();
             sWatch.Start();
             for (i = data.nachalo; i <= data.konec; i++)
             {
                 for (j = i; i <= data.konec; i++)
                 {
                      if (a[j] > a[j+1]) {
                 int b = a[j]; //Обмен элементами
                 a[j] = a[j+1];
                 a[j+1] = b;
                 }
             }
             }
             sWatch.Stop();  
             resp.Post(1);
            

                 Console.WriteLine("Поток # {0}: Параллельный алгоритм = {1} миллисекунд", Thread.CurrentThread.ManagedThreadId, sWatch.ElapsedMilliseconds.ToString());
        }
开发者ID:AldenSeries,项目名称:TDDP_lab,代码行数:22,代码来源:Program.cs

示例15: Sum

        static void Sum(InputData data, Port<int> resp) //параллельный алгоритм
        {
            int Result = 0;
            int i = 0;
            System.Diagnostics.Stopwatch sWatch = new System.Diagnostics.Stopwatch();//для отсчитывания времени
            Random r = new Random();
            for (int j = 0; j < n; j++)
                Arr[j] = r.Next(5);
            sWatch.Start();
            
                for (i = data.start; i <= data.stop; i++)
                {
                    Result = Result + Arr[i]; //сумма массива
                }
        
             resp.Post(1);//результат отпраляется на порт

            Console.WriteLine("Поток № {0}: Параллельный алгоритм = {1} мс.", Thread.CurrentThread.ManagedThreadId, sWatch.ElapsedMilliseconds.ToString());
            sWatch.Stop();
            Console.WriteLine("Сумма:");
            Console.WriteLine(Result);
        }
开发者ID:AldenSeries,项目名称:TDDP_lab,代码行数:22,代码来源:Parallel.cs


注:本文中的Port.Post方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。