我需要使用阻塞集合,以便可以异步调用委托。不幸的是,委托有两个参数,由一个结构和一个附加字符串组成。使用该结构是因为它是通过 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;
}
}
有没有一种简单的方法可以使用指针来避免构造函数中的复制语句,以便我可以轻松地使用阻塞集合?