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


C# IChannel.Select方法代码示例

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


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

示例1: Run

        public override void Run(ModuleInfo info, CancellationToken token = default(CancellationToken))
        {
            string file1 = options.File1;
            string file2 = options.File2;
            Matrix a, b;

            try
            {
                a = Matrix.LoadFromFile(file1);
                b = Matrix.LoadFromFile(file2);
            }

            catch (FileNotFoundException ex)
            {
                _log.Error("File with a given fileName not found, stopping the application...", ex);
                return;
            }

            int[] possibleValues = { 1, 2, 4, 8, 16, 32 };
            
            int pointsNum = options.PointsNum;

            if (!possibleValues.Contains(pointsNum))
            {
                _log.ErrorFormat("Cannot start module with given number of points. Possible usages: {0}", string.Join(" ", possibleValues));
                return;
            }

            _log.InfoFormat("Starting Matrixes Module on {0} points", pointsNum);

            var points = new IPoint[pointsNum];
            var channels = new IChannel[pointsNum];
            for (int i = 0; i < pointsNum; ++i)
            {
                points[i] = info.CreatePoint();
                channels[i] = points[i].CreateChannel();
                points[i].ExecuteClass("NewMatrixModule.MultMatrix");
            }

            var resMatrix = new Matrix(a.Height, b.Width);
            DateTime time = DateTime.Now;
            _log.Info("Waiting for a result...");

            switch (pointsNum)
            {
                case 1:
                    channels[0].WriteObject(a);
                    channels[0].WriteObject(b);
                    resMatrix = (Matrix)channels[0].ReadObject(typeof(Matrix));
                    break;
                case 2:
                    {
                        var matrixPairs = Divide2(a, b).ToArray();
                        channels[0].WriteObject(matrixPairs[0].Item1);
                        channels[0].WriteObject(matrixPairs[0].Item2);
                        channels[1].WriteObject(matrixPairs[1].Item1);
                        channels[1].WriteObject(matrixPairs[1].Item2);

                        LogSendingTime(time);

                        Join2(resMatrix, channels.Select(c => new Lazy<Matrix>(c.ReadObject<Matrix>)).ToArray());
                    }
                    break;
                case 4:
                    {
                        var matrixPairs = Divide4(a, b).ToArray();
                        for (int i = 0; i < matrixPairs.Length; i++)
                        {
                            channels[i].WriteObject(matrixPairs[i].Item1);
                            channels[i].WriteObject(matrixPairs[i].Item2);
                        }

                        LogSendingTime(time);

                        Join4(resMatrix, channels.Select(c => new Lazy<Matrix>(c.ReadObject<Matrix>)).ToArray());
                    }
                    break;
                case 8:
                    {
                        var matrixPairs = Divide8(a, b).ToArray();
                        for (int i = 0; i < matrixPairs.Length; i++)
                        {
                            channels[i].WriteObject(matrixPairs[i].Item1);
                            channels[i].WriteObject(matrixPairs[i].Item2);
                        }

                        LogSendingTime(time);

                        Join8(resMatrix, channels.Select(c => new Lazy<Matrix>(c.ReadObject<Matrix>)).ToArray());
                    }
                    break;
                case 16:
                    {
                        var matrixPairs8 = Divide8(a, b).ToArray();
                        for (int i = 0; i < 8; i++)
                        {
                            var m2 = Divide2(matrixPairs8[i].Item1, matrixPairs8[i].Item2).ToArray();
                            channels[i * 2].WriteObject(m2[0].Item1);
                            channels[i * 2].WriteObject(m2[0].Item2);
                            channels[i * 2 + 1].WriteObject(m2[1].Item1);
//.........这里部分代码省略.........
开发者ID:AndriyKhavro,项目名称:Parcs.NET,代码行数:101,代码来源:MatrixesModule.cs

示例2: List

 public ISendMessage List(IChannel[] channels)
 {
     String channellist = String.Join(",", channels.Select(c => c.Name));
     return Client.CreateSendMessage(Connection, "LIST ", channellist, String.Empty, SendType.List, channels);
 }
开发者ID:Gohla,项目名称:ReactiveIRC,代码行数:5,代码来源:MessageSender.cs

示例3: Names

 public ISendMessage Names(IChannel[] channels, String target)
 {
     String channellist = String.Join(",", channels.Select(c => c.Name));
     return Client.CreateSendMessage(Connection, "NAMES ", String.Concat(channellist, " ", target), String.Empty,
         SendType.Names, channels);
 }
开发者ID:Gohla,项目名称:ReactiveIRC,代码行数:6,代码来源:MessageSender.cs

示例4: Join

 public ISendMessage Join(IChannel[] channels, String[] keys)
 {
     String channellist = String.Join(",", channels.Select(c => c.Name));
     String keylist = String.Join(",", keys);
     return Client.CreateSendMessage(Connection, "JOIN ", String.Concat(channellist, " ", keylist), String.Empty,
         SendType.Join, channels);
 }
开发者ID:Gohla,项目名称:ReactiveIRC,代码行数:7,代码来源:MessageSender.cs


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