0
當我們從「單一系統」應用程序轉移到可將任務轉移到分佈式處理節點的應用程序時,我們正在改變大量代碼。現有代碼混合使用非託管和現在管理的C++代碼,但也使用C#代碼在節點和控制器之間提供WCF接口。將MFC CArray <int>轉換爲託管C++中的列表<int>的最快轉換
作爲此舉的結果,我看到在可預見的未來可能會保留的通用代碼模式是將MFC CArray中的整數ID值轉換爲託管列表的基本轉換,以啓用WCF上的序列化。目前的格局是:
List<int>^ fixtures = gcnew List<int>(aFixtureIds.GetCount());
for(int i = 0; i < aFixtureIds.GetCount(); i++) //aFixtureIds is of MFC type CArray<int,int>
{
fixtures->Add(aFixtureIds[i]);
}
我們還可以使用反向類似的東西,在這裏如果返回一個列表,我們可以通過它在一個迭代循環並調用添加它轉換成一個CIntArray用於調用函數。
我明白上面看起來不是很密集,但它確實被稱爲很多 - 是否有一個更好的模式來執行這個基本列表< - > CArray轉換會佔用較少的處理時間?這是一種可以被編譯器有效優化的代碼(我懷疑它不是,但願意糾正)?清單大小各不相同,但通常是從1到數萬個項目的任何項目,可能更多。