簡體   English   中英

C#結構和指針

[英]C# Structs and pointers

我需要使用阻塞集合,以便可以異步調用委托。 不幸的是,委托人有兩個參數,分別由一個結構和一個附加字符串組成。 之所以使用struct,是因為它是通過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;
    }
}

有沒有一種簡單的方法可以避免在構造函數中使用復制語句的指針,以便可以輕松使用阻塞集合?

最好的方法是先創建傳輸類。
在調用互操作時,將struct用作傳輸類的字段,並將此字段用作參數。 我想在這種情況下沒有辦法避免公共領域。
因此,應盡量減少內存使用,並且減少一個副本的發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM