0

我之所以这么问是因为我创建了一个 Windows 服务,而且似乎在重负载下(在我的情况下,当 Windows 启动时)在我手动对其进行处理之前,xml 中的数据没有被加载。检查该数据集中的特定数据表中有多少行。

数据集有一个模式。

伪代码将是:

dataset.readxml("c:\myfile.xml")
if dataset.datatable1.rowcount is 1 
    do something
else
    do something else

在我的情况下,即使有一行,它也会到达 else 情况。

如果我之后手动启动服务,因为 else case 停止它,一切正常。


如果它是同步的,什么会导致这种行为?

4

1 回答 1

3

.NET 类中的异步方法遵循 BeginSomeAction() / EndSomeAction() 模式,所以我猜 ReadXml() 是同步的。根据文档,DataSet 没有 BeginReadXml。

编辑:快速浏览实现表明同步读取,所以除非我错过了什么,否则它支持我的猜测。

于 2009-03-26T12:12:31.103 回答