我应该为每个地理处理工具创建新的地理处理器对象吗?

时间:2010-06-28 14:45:14

标签: c# arcobjects

常见故事:我使用C#开发ArcMap扩展。使用ArcToolbox中的各种地理处理工具可以解决大多数问题。通常更合适的是:

  1. 为每个工具创建新的地理处理器对象?
  2. 重新使用一个地理处理器对象?
  3. 当建议使用1)时,是否必须在执行单个工具后释放com对象?什么是关于调用GC.Collect()?

    当推荐使用2)时,它是一种很好的方法来实例化它并反复重复使用它,例如使用单例模式吗?

    我个人的经验是使用第二种方法,在调试代码时遇到严重的内存访问冲突。

1 个答案:

答案 0 :(得分:1)

我可能会选择为每个人创建一个新对象。如果您使用多个线程,则无论如何都需要避免同步。

是的,您需要尽快释放每个com对象,但不要调用GC.Collect()。

见这里:http://msdn.microsoft.com/en-us/library/ff647812.aspx