DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ファイルの読込・書込操作で排他制御したい

環境/言語:[Windows2000/VB.NET]
分類:[.NET]

いつもお世話になっています。

PGからファイルへ読込や書込の操作を行っているのですが、
オンラインで複数の端末が同一のファイルにアクセスするので
排他制御を行いたいのですが、
Fileクラスにそういった関数、パラメーターなどないのでしょうか?
できれば、Openされているファイルにアクセスした場合、
処理が終わるのではなく、待ち状態になるようにコーディングしたいです。

どなたか教えて下さい。
宜しくお願します。
■No2797に返信(Daiさんの記事)
> PGからファイルへ読込や書込の操作を行っているのですが、
> オンラインで複数の端末が同一のファイルにアクセスするので
> 排他制御を行いたいのですが、
> Fileクラスにそういった関数、パラメーターなどないのでしょうか?
> できれば、Openされているファイルにアクセスした場合、
> 処理が終わるのではなく、待ち状態になるようにコーディングしたいです。

FileクラスのOpenメソッドで適当なFileShareを指定することにより、開いたファイルを他のプロセスで開くことを禁止することができるようになりますが(FileShareを指定しないときはNoneを指定したことになるので、それはそれでよいのですが)、これだけではダメですか?

ファイルを閉じるまで待機するには、例外をスローしなくなるまで繰り返してOpenを呼び出せばよいでしょう。
■No2848に返信(管理人さんの記事)
> ■No2797に返信(Daiさんの記事)
>>PGからファイルへ読込や書込の操作を行っているのですが、
>>オンラインで複数の端末が同一のファイルにアクセスするので
>>排他制御を行いたいのですが、
>>Fileクラスにそういった関数、パラメーターなどないのでしょうか?
>>できれば、Openされているファイルにアクセスした場合、
>>処理が終わるのではなく、待ち状態になるようにコーディングしたいです。
>
> FileクラスのOpenメソッドで適当なFileShareを指定することにより、開いたファイルを他のプロセスで開くことを禁止することができるようになりますが(FileShareを指定しないときはNoneを指定したことになるので、それはそれでよいのですが)、これだけではダメですか?
>
> ファイルを閉じるまで待機するには、例外をスローしなくなるまで繰り返してOpenを呼び出せばよいでしょう。

try/catchを使えば良いのですね。
参考になりましす。
ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板