VB.NET質問スレ (Part10 ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
683:デフォルトの名無しさん 05/04/07 18:24:18 >>681 Repeater1が何ものか知らないが DataSourceにReaderをつっこむのではなく DataTableのDefaultViewを設定してみては? 684:デフォルトの名無しさん 05/04/07 18:31:49 .netフレームワークのバージョンって どうやって調べるの? 685:デフォルトの名無しさん 05/04/07 18:48:52 >>676 _FStreamのファイナライザが既に動いてCloseしてるからだろう。 ttp://www.ascii.co.jp/pb/msdn/article/a09_0003.html が参考になるかも知れない。 そもそも、どうせFileStreamがGCされた時にFileStreamのファイナライザが動いてフラッシュして閉じるので、 こちらでわざわざファイナライザを実装してCloseさせちゃいけない。 StreamWriterを使うと、デフォルトではStreamWriterがバッファリングしてストリームにすぐには書き込まないので、 書き込み内容が損失するわけだ。StreamWriterのファイナライザはストリームに操作しないから。 確実にはStreamWriter.Closeが喚ばれない場合の解決策としては、 StreamWriterを使わずWriteやWriteLineメソッドを自前で実装してFileStreamに直接書き込むとか、 StreamWriterを使うなら、AutoFlushをTrueにする手もある。 こういう場合はIDisposableを実装させてDisposeメソッドにファイル閉じる動作を書いて、 プログラマにDispose呼出を明示するのがベターなんだけどな。 VB2005でUsingステートメントもサポートされるようになるし。 ちなみに、StreamWriter.Closeは、自動でFlush動作もするので_WriteText.Flushは必要ないし、 基底のストリームも閉じてしまうのでその後の_FStream.Flushとかできない(意味無い)。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4995日前に更新/240 KB
担当:undef