- - PR -
待ち時間を設ける事は可能でしょうか?
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-10-22 10:39
中村です。
VB.NETで、こんなことは可能か、皆さんに質問します。 VB.NET2002で作成したシステムを終了するときに DBとして使用しているmdb(AccessXPです)を起動して 10秒から20秒ぐらい待ってからmdbも.NETも終了させたいのです。 なぜ、mdbを起動させたいかというと、mdb終了時に最適化を行うように しているので、mdbを起動させて終了させれば自動で最適化できると 考えたからです。 mdb起動方法は、Shell関数またはProcessどちらかで起動するのですが、 その「10秒から20秒待ってから」ということがVB.NETで、可能でしょうか? どなたかご存知の方、ご教授願います。 環境 VB.NET2002 OS:XP mdb:AccessXP _________________ | ||||
|
投稿日時: 2003-10-22 11:52
System.Threading.Thread.Sleepメソッドではどうでしょうか? | ||||
|
投稿日時: 2003-10-22 12:07
こんにちは。
ちょっとわかりにくいのですが... 1.ユーザが終了を指示する (ここで、終了の方法はいろいろあることに注意) 2.Accessデータベースを開く 3.Accessデータベース内の、何らかの処理を実行 同時に、アプリは10〜20秒の待機に入る 4.アプリは待機終了後、Accessデータベースの処理の状態にかかわらず、 Accessもろとも終了する ということでしょうか? 上記の処理で良いなら、FormのClosingイベントで、Accessを開くスレッドをおこします。メインスレッドは待機に入り、待機終了後、Accessスレッドを停止させ、Trueで返ります。 「10〜20秒」とは、何を基準にして求めるのでしょう?固定なのか、可変なのか。可変ならばどうやって? | ||||
|
投稿日時: 2003-10-22 12:28
確かに、その10〜20秒というビミョウな数値はどこからでてきているのでしょうね? 処理の内容としてはMDBにマクロか何かが仕込んであり、それを起動することによって最適化 するということでしょうか? Shell関数を使わずに直接VB.NETからMDBの最適化を行うこともできますよ。 ↓コードはC#ですが。こんな感じで。 同じことだと思いますが、「最適化」ではなく「圧縮」というタイトルでVB.NETのコードもありました。ただし、形式がAccess2000になるって言ってますね・・・XPはどうなんだろ? あくまでもご参考まで。 http://support.microsoft.com/default.aspx?scid=kb;ja;306538 | ||||
|
投稿日時: 2003-10-22 13:05
中村です。
よねKENさん、Jittaさん、yooさん、早速のご返答ありがとうございます。 説明の仕方が下手で申し訳ございません。 簡単に言いますと、 1.フォームAというフォーム上の終了ボタンをクリックする。 2.Accessを開く。 3.Accessが完全に起動するまで待つ(固定で10秒ぐらい) 4.3で、待機後アプリとAccess両方を終了させる。 こんな感じの処理をしたいと思っています。 待機する秒数ですが、固定で10〜20秒ぐらいの待機をしたいです。 こんな幹事の説明でお分かりいただけたでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2003-10-22 13:32
単純に一定時間待つ方法は前回の投稿の通りです。 (Sleepすると操作を受け付けないため一見フリーズしたようになるので、 そうなると困る場合は、For文とApplication.DoEventsを使ってフリーズしないように要調整) 別の手として、CreateObjectでAccessを起動して、 Accessの終了メソッド(Quit?)で終了するという手もあるかと思います。 | ||||
|
投稿日時: 2003-10-22 15:55
ほむらです。
yoo氏の言っていた直接MDBを最適する方法で無い場合。 最悪MDBの破壊につながりませんか? ちと、疑問に思ったので。。。 _________________ Message From ほむら | ||||
|
投稿日時: 2003-10-22 15:57
ほむらです。
yoo氏の言っていた直接MDBを最適する方法で無い場合。 最悪MDBの破壊につながりませんか? ちと、疑問に思ったので。。。 _________________ Message From ほむら |