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
0
1
2
4
8
16
32
256
512
4096