Re: win32 design patterns
"Alex Blekhman" <tkfx.REMOVE@yahoo.com> wrote in message
news:eQ%23aUktfIHA.4396@TK2MSFTNGP04.phx.gbl...
"Ben Voigt [C++ MVP]" wrote:
[...] This non-deterministic cleanup creates a race condition. An
alternate example is, since the GC is triggered by memory pressure, a
database connection pool could be exhausted by unreachable objects
waiting to be finalized, but the GC will not run because it doesn't know
that resources are scarce and a collection is needed.
That's why C# provides `using' statement. It is equivalent to C++'s RAII.
After all, .NET programs have orders of magnitude fewer leaks than
comparable native programs.
Not equivalent at all. RAII places the burden on the component implementor,
C# using places the burden on every caller.
Also, I was responding to the question
<quote>So in C#, if a non-memory resource (like a file) is not "guarded" by
a 'using' block, is this resource leaked if an exception is thrown??</quote>
which specifically asked about the case where "using" wasn't present.