oracle 超过最大游标数 .net

因为我有很多的线程,时间一长就会报超过最大游标数的异常。代码贴一下,
希望可以得到解决,谢谢。

String ^sqlSelectHost = "... ...";
OracleCommand ^comm = nullptr;
comm = conn->CreateCommand();
comm->Connection = conn;
comm->CommandType = CommandType::Text;

OracleDataReader^ reader;
comm->CommandText = sqlSelectHost;
List<String^>^ valList = gcnew List<String^>();
String^ hostName;
try {
    reader = comm->ExecuteReader();
    while (reader->Read())
    {
        hostName = reader->GetString(0);
        valList->Add(hostName);
    }
    return valList->ToArray();
}
catch (Exception^ e) {
    return valList->ToArray();
}
finally{
    if (reader != nullptr)
    {
        reader->Close();
        delete reader;
    }
    if (comm != nullptr)
    {
        comm->Parameters->Clear();
        delete comm;
    }
}

http://blog.csdn.net/kai27ks/article/details/7633482