1

私のアプリケーションでは、管理側で 15 秒ごとに XML ファイルを作成しています。XML を作成するために、XML の文字列ビルダーを使用しました。

File.WriteAllText("D:\\FE_Display.xml", StringBuilder.ToString())

15秒ごとにフロントエンドのグリッドに表示するために使用したのと同じファイル。このファイルは、フロント エンドで同時に使用する最小 10 メンバーです。以下のコードはフロント エンドで使用されます。

Dim ds As New DataSet()  

ds.ReadXml("d://FE_Display.xml")
Try
    If ds.Tables(0).Rows.Count > 0 Then
        Grid1.DataSource = ds.Tables(0)
        Grid1.DataBind()
    End If
Catch ex As Exception

End Try

両方のイベント (読み取りと書き込み) が同時に発生すると、エラーが発生します

別のプロセスで使用されているため、プロセスはファイル 'FE_Display.xml' にアクセスできません

4

2 に答える 2

2

FileShareを提供しない限り、通常、ファイルは相互に排他的です。ファイルを読み取り、メモリに保持してから書き込むことができます。

Reading同時に、Writingxmlは適切にフォーマットする必要があるため、(少なくともxmlの場合)意味がありません。書き込みと読み取りを同時に行うと、予期しない結果が得られます。

最善の方法は

  1. ファイルを開き、消費して閉じます。
  2. ファイルを開き、書き込みます。
于 2013-07-23T20:46:06.303 に答える