The method in the post you link to calls Invoke
/BeginInvoke
before checking if the control's handle has been created in the case where it's being called from a thread that didn't create the control.
So you'll get the exception when your method is called from a thread other than the one that created the control. This can happen from remoting events or queued work user items...
EDIT
If you check InvokeRequired
and HandleCreated
before calling invoke you shouldn't get that exception.