C# 中的 using(){...} 是否与 Cocoa 中的 autoreleasepool{...} 具有相同的用途?

Does using(){...} in C# serve the same purpose as autoreleasepool{...} in Cocoa?

我在 C# 中发现了 using(){} --> Uses of "using" in C#

我知道 autorelease{}using(){} 不一样,因为 cocoa 使用 ARC 而 C# 使用 GC。 --> Is it necessary to use autoreleasepool in a Swift program?

我只是想向使用过这两种方法的人确认一下,它们是否确实用于相同的目的。

编辑:我找到了一个第三方 C# 编译器,它似乎确实将这些想法联系在一起。

RemObjects C# also has support for the (rarely needed) manual declaration of Auto-Release Pools via the using (__autoreleasepool) syntax.

http://www.elementscompiler.com/elements/hydrogene/cocoa.aspx

C# 中的 using(){...} 与 Cocoa 中的 autoreleasepool{...} 的用途相同吗?

不,它们是不同的。

C#的using语句是关于资源获取和处置的。这通常是外部资源,例如文件,其中获取是打开文件,处置是关闭文件。

Objective-C的自动释放池是关于控制内存对象的生命周期。当池被排空时,放置在池中的对象被释放,对于默认池,这是在事件循环的每次迭代结束时。