全球字典与GCHandle

时间:2010-09-07 09:45:00

标签: c# dictionary unmanaged managed handle

我需要将某种标识符传递给非托管代码,然后处理请求并在完成某些处理后回调我的托管代码。

我想知道创建GCHandle并将其传递给非托管代码然后在非托管代码通过GCHandle后恢复对象或是否更好地创建全局字典(比如整数)更好)将对象与所述密钥相关联。

感谢您的帮助!

直到

2 个答案:

答案 0 :(得分:1)

我刚创建了一百万个类的实例,并通过创建随机整数键将其添加到字典中。同样,我创建了一百万个对象并为它们创建了GCHandles。

使用GCHandles花费大约60%的时间将对象添加到字典中。

感谢您的帮助!

答案 1 :(得分:0)

如果您不必将托管对象实际传递给非托管代码,我会投票支持全局字典。使用字典的缺点可能需要线程同步。 GCHandle的问题是给GC增加了额外的负担,你必须进行清理等。