将项添加到BlockingCollection

时间:2014-04-29 13:26:11

标签: c# task-parallel-library blockingcollection

Orginnally我有一个BlockingCollection

 BlockingCollection<ChannelResource> ChannelQueue = new BlockingCollection<ChannelResource>();

我添加了项目。

  ChannelResource ChanResource = TelephonyServer.GetChannel();
  MyApplication.ChannelQueue.TryAdd(ChanResource);

现在我发现每个ChannelResource都有一个对应的字符串,所以我想将带有字符串的ChannelResource对象一起添加到BlockingCollection。

如何?合并对象ChannelResource和字符串以形成匿名类型?

修改

我的意思是我必须将BlockingCollection重新定义为

BlockingCollection<T> ChannelQueue = new BlockingCollection<T>();

T包含ChannelResourcestring

1 个答案:

答案 0 :(得分:2)

我想您可以使用Tuple类(http://msdn.microsoft.com/en-us/library/system.tuple.aspx),如下所示:

var ChannelQueue = new BlockingCollection<Tuple<ChannelResource, String>>();
ChannelResource ChanResource = TelephonyServer.GetChannel();
MyApplication.ChannelQueue.TryAdd(Tuple.Create(ChanResource, "someString"));