我需要使用阻塞集合,以便我可以异步调用委托。不幸的是,委托有两个参数,包括结构和附加字符串。使用该结构是因为它是通过Interop调用外部c函数的结果 现在我正在寻找一种避免在使用阻塞集合时复制结构的方法 目前我的代码如下所示:
ConsumerQueue.Enqueue(new StructTransfer(structValue, stringValue));
消费者然后解压缩StructTransfer。
StructTransfer目前看起来像这样
public struct Transfer{
public StructValue structValue;
public string stringValue;
public Transfer(StructValue structValue, string stringValue){
this.structValue=structValue;
this.stringValue = stringValue;
}
}
是否有一种简单的方法可以使用指针来避免构造函数中的复制语句,以便我可以轻松地使用阻塞集合?
答案 0 :(得分:0)
最好的方法是先创建转学课程 使用struct作为传输类的字段,并在调用interop时将此字段用作参数。我想在这种情况下没有办法避开公共领域 因此,应尽量减少内存使用量,减少一次复制。