cbrumme's WebLog
A quick update on me.
It’s been over two years since I blogged. Although I remain happily (perhaps even ecstatically)...
Date: 09/15/2006
Updated Finalization and Hosting
My original posts on Finalization and Hosting had some hokey XXXXX markers in place of content,...
Date: 04/26/2004
Apartments and Pumping in the CLR
I’ve already written the much-delayed blog on Hosting, but I can’t post it yet because...
Date: 02/02/2004
Access to old blogs
By default, old blogs are truncated from this web site. If you want to read old entries that have...
Date: 11/10/2003
The Exception Model
I had hoped this article would be on changes to the next version of the CLR which allow it to be...
Date: 10/01/2003
Reliability
I’ve been putting off writing this blog, not just because I’m on vacation in Maui and have far more...
Date: 06/23/2003
Infrequent blogging
Just a quick explanation for why there hasn't been a new blog lately. I'm partway through a 3.5...
Date: 06/16/2003
Access to old blogs
By default, old blogs are truncated from this web site. If you want to read old entries that have...
Date: 05/18/2003
Memory Model
One of the suggestions for a blog entry was the managed memory model. This is timely, because we’ve...
Date: 05/17/2003
Value Types
The CLR’s type system includes primitive types like signed and unsigned integers of various sizes,...
Date: 05/10/2003
Request a topic
If there's a topic related to the CLR, feel free to drop me a line asking me to talk about it. I...
Date: 05/08/2003
Security and Asynchrony
In a comment to my last ramble, about asynchronous execution and pinning, someone asked for advice...
Date: 05/08/2003
Asynchronous operations, pinning
One thing we tried to do with the CLR and FX is provide a consistent asynchronous programming model....
Date: 05/06/2003
Interface layout
The CLR has two different techniques for implementing interfaces. These two techniques are exposed...
Date: 05/03/2003
Virtual and non-virtual
The CLR type system supports both virtual and non-virtual instance methods. And IL can contain both...
Date: 04/25/2003
Interning Strings and immutability
Managed strings are subject to ‘interning’. This is the process where the system notices that the...
Date: 04/22/2003
Lifetime, GC.KeepAlive, handle recycling
It’s not possible to state exactly when a managed object will be collected. The garbage collector...
Date: 04/19/2003
Managed blocking
What’s the difference between WaitHandle.WaitOne/WaitAny/WaitAll and just PInvoke’ing to...
Date: 04/17/2003
ReleaseComObject
Developers who are accustomed to the IDisposable pattern or to C#’s ‘using’ syntax sometimes ask why...
Date: 04/16/2003
Threads, fibers, stacks and address space
Every so often, someone tries to navigate from a managed System.Threading.Thread object to the...
Date: 04/15/2003
Initializing code
A common question is how to initialize code before it is called. In the unmanaged world, this is...
Date: 04/15/2003
Unhandled exceptions
There are two kinds of threads executing inside managed code: the ones we start in managed code and...
Date: 04/15/2003
Inheriting from MarshalByRefObject
Developers often wonder why they are forced to derive from MarshalByRefObject or...
Date: 04/15/2003
Managed objects and COM
All managed objects other than those derived from ServicedComponent, when exposed to COM, behave as...
Date: 04/15/2003
Why don't metaobjects marshal by reference?
Objects that derive from MarshalByRefObject will marshal by reference rather than value. Metaobjects...
Date: 04/15/2003
Surprising 'protected' behavior
There’s a subtle but important difference between protected access in unmanaged C++ and protected...
Date: 04/15/2003
What is SEHException?
One way you get this exception is if unmanaged code does an OS RaiseException() or causes a fault....
Date: 04/15/2003
Size of a managed object
We don't expose the managed size of objects because we want to reserve the ability to change the way...
Date: 04/15/2003
DLL exports
People often ask how they can expose traditional DLL exports from managed assemblies. Managed C++...
Date: 04/15/2003
Hyper threading
If the operating system schedules multiple threads against a hyper-threaded CPU, the CLR...
Date: 04/15/2003
Turning off the garbage collector
It is not generally possible to turn off garbage collection. However, the garbage collector won’t...
Date: 04/15/2003
Error C0020001
#define BOOTUP_EXCEPTION_COMPLUS 0xC0020001 You may see an exception with this code, or an HRESULT...
Date: 04/15/2003
Static Fields
By default, static fields are scoped to AppDomains. In other words, each AppDomain gets its own copy...
Date: 04/15/2003