- - PR -
File.Exists を別スレッド化する。
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-05-21 18:54
開発環境は、VB 2005,.NET Framework 2.0 です。
File.Existsでネットワークパスが見つからない場合、アプリケーションがフリーズしてしまいます。 Delphiで別スレッド化しているのを見つけたのですが、VB2005でどうやったら実現できるか分かりません。 お分かりの方、是非ご享受ください。 宜しくお願い致します。 | ||||
|
投稿日時: 2008-05-21 19:06
どの部分がどんなふうにわからないんですか?
とりあえず、Google 先生あたりに聞いてみるといいんじゃない? http://www.google.co.jp/search?hl=ja&rlz=1B3GGGL_jaJP270JP270&q=%E3%83%9E%E3%83%AB%E3%83%81%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89+.netframework+2.0&btnG=%E6%A4%9C%E7%B4%A2&lr= _________________ かるあ のメモ と スニペット | ||||
|
投稿日時: 2008-05-21 19:33
早速の返答ありがとうございます。
googleで同じような質問をしているのをみつけたのですが、それはDelphiというものでした。 VB2005ではどうしたらよいのかがわかりません。 よろしくお願いします。 function FileExistTimeOut(const FileName:String;TimeOut:Cardinal=3000):Boolean; var FileExistsThread : TFileExistsThread; TC : Cardinal; begin FileExistsThread := TFileExistsThread.Create(True); FileExistsThread.FreeOnTerminate := True; FileExistsThread.FileName := FileName; FileExistsThread.Resume; TC := GetTickCount; while (FileExistsThread.Terminated = False) and (GetTickCount - TC < TimeOut) do begin ; end; case FileExistsThread.Result of -1://タイムアウト begin TerminateThread(FileExistsThread.Handle,0); Result := False; end; 0:Result := True; 1:Result := False; else Result := False; end; end; | ||||
|
投稿日時: 2008-05-21 19:39
で?どの部分のどんなふうにわからないんですか?
_________________ かるあ のメモ と スニペット | ||||
|
投稿日時: 2008-05-21 19:58
説明が足りなくてすみません。
File.Exists を別スレッドに立てて、どうしたらタイムアウト処理が出来るのかが分かりません。 Private Function FileExistTimeOut(ByVal FileName As String, ByVal TimeOut As Integer) As Boolean End Function | ||||
|
投稿日時: 2008-05-21 21:06
それは私もいい方法を知りたいところです。 今のところ私はデリゲートを非同期で呼んでExistsを呼び出しています。 タイムアウトは「無かったことにする」という手を使っています。 つまり、キャンセルもなにもせず、放置して忘れます。 キャンセル時に別スレッドを強制的に削除すると たまにリソースがリークしますので、 キャンセルは諦めています。 非同期デリゲートなら、忘れてしまえばいつか勝手に解放されます。 ご参考になれば。 また、他にいい方法があれば教えてください。 | ||||
|
投稿日時: 2008-05-22 00:23
とりあえず以下のサイトを全て読んで
分からなかったら具体的に質問されたほうがいいと思います。 記事一覧:CodeZine http://codezine.jp/a/default/cid/279.aspx | ||||
|
投稿日時: 2008-05-22 09:01
れいさん、burton999さん、返信ありがとうございます。
burton999さんの記事をもう一度よく読んで、れいさんの非同期デリゲートを勉強してみます。 |
1|2|3
次のページへ»