我正在用C#编写程序。我收到AccessViolationException
,但不知道为什么。再加上我的try and catch语句没有抓住它。
这是我的代码:
static public Hashtable GetSpectrumFromTidas(int integrationTime, int maxWaveLength, int minWaveLength, double spectrometerAveragingFactor, string ipAddressTidas)
{
Hashtable readValues = new Hashtable();
int[] vals;
//vals = new int[spectrometerDataSize];
int numAverages;
//if(integrationTime <100)
numAverages = (int)Math.Floor((double)100 / integrationTime * spectrometerAveragingFactor) + 1;
vals = tidas.readSpectrum(integrationTime, numAverages, 2, ipAddressTidas);
try
{
for (int i = minWaveLength; i <= maxWaveLength; i++)
{
float data = tidas.getSpectrumData(i, ref vals) / numAverages;
readValues.Add(i.ToString(), string.Format("{0:N}", data));
}
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
return readValues;
}
现在,它并不总是发生,只是有时。而我正在使用的Hashtable
类来自Collection lib。
它发生在readvalues.add(....)
行