If you are trying to veryfy whether or not the selected object is curve, don't use IsCurve.
Rhino.IsCurve (strObject [, intIndex])
It would be much faster if you use GetObject instead.
Rhino.GetObject ([strMessage [, intType [, blnPreSelect [, blnSelect [, arrObjects ]]]]])The Second option [, intType lets you limit the type of object you can select.
The object types are the following