我正在编写多线程应用程序。
我需要这种功能:一个method#1
将数据放入Queue<>
,method#2
从队列中获取此数据并处理它。
Method#2
有两个参数:XElement
和FileInfo
。如何将这两个变量存储在Queue<>
中以供进一步使用?
答案 0 :(得分:5)
使用Tuple<XElement, FileInfo>
。像这样实例化:
Tuple<XElement, FileInfo> tuple = new Tuple<XElement, FileInfo>(elem, file);
然后检索它的值:
XElement elem = tuple.Item1;
FileInfo file = tuple.Item2;
因此,您可以将Tuple<XElement, FileInfo>
放入Queue<Tuple<XElement, FileInfo>>
,然后将元组出列并将其项目传递给方法#2。
答案 1 :(得分:3)
您可以创建一个具有XElement和FileInfo两个属性的类,然后将该类的实例存储在队列中。
public MyClass {
public XElement xElement;
public FileInfo fileInfo;
}
然后使用它:
Queue<MyClass> queue = new Queue<MyClass>();
foreach (MyClass instance in queue) {
Method#2(instance.xElement, instance.fileInfo);
}
答案 2 :(得分:1)
public Queue<(XElement, FileInfo)> data= new Queue<(XElement, FileInfo)>();
我正在将这种方法用于我的多线程数据系统。效果很好。