【发布时间】:2014-02-26 11:49:43
【问题描述】:
我编写服务器应用程序,它将从 HDF5 文件中提取的数据同时发送到多个客户端
有一段代码(在单独的线程中运行):
var _fileID = H5F.open("C:\\Temp\\MLS-Aura_L2GP-Temperature_v03-33-c01_2012d347.he5", H5F.OpenMode.ACC_RDONLY);
H5D.open(_fileID, "/HDFEOS/SWATHS/Temperature/Data Fields/Temperature");
var space = H5D.getSpace(dataset);
var size = H5S.getSimpleExtentDims(space);
float[,] SatData = new float[size[0], size[1]];
var wrapArray = new H5Array<float>(SatData);
var dataType = H5D.getType(dataset);
H5D.read(dataset, dataType, wrapArray);
如果我尝试在单独的线程“H5D.read(dataset, dataType, wrapArray);”中读取 HDF5 数据集 有多个线程,我有一个错误:“无法将数据读取到数据集 5000001,状态为 -1”
有什么问题?
【问题讨论】:
-
同样的问题,但我有 5000000 而不是 5000001。而且我只有一个线程。你最终解决了吗?
-
在我的例子中,问题在于 reader 和 writer 是不同的应用程序,它们对复合类型的定义略有不同:writer 有一个 UTF8 字符串,而 reader 有一个常规字符串。设法通过更新合同来修复它。
-
我收到 5000002 错误。我该怎么办?
标签: c# multithreading hdf5