C#结构和指针

时间:2013-01-31 10:59:03

标签: c# .net pointers blockingcollection

我需要使用阻塞集合,以便我可以异步调用委托。不幸的是,委托有两个参数,包括结构和附加字符串。使用该结构是因为它是通过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;
    }
}

是否有一种简单的方法可以使用指针来避免构造函数中的复制语句,以便我可以轻松地使用阻塞集合?

1 个答案:

答案 0 :(得分:0)

最好的方法是先创建转学课程 使用struct作为传输类的字段,并在调用interop时将此字段用作参数。我想在这种情况下没有办法避开公共领域 因此,应尽量减少内存使用量,减少一次复制。