本文整理汇总了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);
//.........这里部分代码省略.........
示例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);
}
示例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);
}
示例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);
}