• 締切済み

visualbasic2005のタイマーについて

visualbasic2005で一定の時間間隔で処理を行うタイマーコントロールについて質問があります。このタイマー機能を使った場合、処理時間が厳密ではないということが分かりました。そこでマルチスレッドで厳密に一定時間間隔で処理を行う方法を考えています。マルチスレッドについてはvisualbasic2005ではBackground Workerというツールで可能だということが分かりました。しかし、Background Workerの中で一定時間間隔でメソッドを呼び出し処理をするプログラムの書き方がよく分かりません。 例えば、タイマーコントロールを用いずにマルチスレッドにより現在の時刻を表示するプログラムはどのようになるのでしょうか? お忙しい中申し訳ありませんが、お分かりになる方がいらっしゃいましたらよろしくお願いします。

みんなの回答

  • ape5
  • ベストアンサー率57% (85/148)
回答No.1

タイマーコントロールはSystem.Windows.FormsのTimerを指していると思うのですが、他にも二つTimerがあります。 System.ThreadingとSystem.Timersにあります。 きっとここのどちらかを使えばご希望のものが叶うと思います。 一定時間ごとにメソッドをよぶなら、System.Threadingのほうがよろしいのかな? チェックしてみてください。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルVBAでタイマーコントロールは使えますか

    エクセルVBAでタイマーコントロールは使えますか。 エクセルVBAで、ある時刻になったらマクロを実行させたいと思っています。 無限ループの中にTIME関数で時刻を呼び出し、それをIF文で判定して、 一定時刻にマクロを実行させるものは作りましたが、CPU負荷が高く、24時間 連続で動作させることに不安を感じています。 この他に、VBのタイマーコントロールのような機能を持つオブジェクトや 便利機能等があったら教えていただけませんか。 (一応、VBで時刻管理をするプログラムを作ってそこからエクセルVBAを呼 び出す方法やタスクスケジューラでエクセルVBAを呼び出す方法、ATコマンド 等も考えていますが、可能ならエクセルVBAで閉じて処理をしたい)。 尚、私はWindowsMe+エクセル2000でVBAを作成しています。 実際にVBAを動かすのは、WinsowNT4.0サーバー+エクセル2000を予定してい ます。

  • タイマーコントロールのイベント処理

    VB6SP6を使ってます。 タイマーコントロールで一定間隔に発生させるイベントプロシージャについて以下の点を教えてください。 1.イベント処理に時間を要し、Intervalの値を超えてしまった場合は、また新たな次のイベントが発生するのでしょうか。 もし新規イベントが発生するのでしたらこれまで処理を行ったイベント処理情報は全て破棄されるのでしょうか 2.イベント処理中にEnabledプロパティがFalseとなりタイマーが停止した場合、イベント処理は最後まで完了するのでしょうか。それとも途中で中止され、途中情報は破棄されるのでしょうか 以上、よろしくお願いいたします

  • Excel-VBAでタイマー処理

    お世話になります。 Excel-VBAでユーザフォームを操作したいのですが、VBの場合ツールボックスにタイマーコントロールがありますが、Excel-VBAの場合ツールボックスにタイマーコントロールがありません。 タイマー処理はどうしたら良いのでしょうか?

  • VisualBasic 2010

    VisualBasic 2010 でWindowsアプリケーションを作成しています。 以下のような構成を考えております。 ・FormA ・ClassA(FormAでの処理を行うクラス) FormA内でClassAをNewしてClassAのメソッドを使用するようにしています。 その際に以下のようなコーディングをすると意図した動作をしません。 FormA.Txt_Msg.Text = "aaa" ClassAからFormAに配置したコントロールのTextを変更したりすることは できないのでしょうか?。 またはやり方が間違っているのでしょうか? ご存知の方がいらっしゃればご教授お願い致します。

  • Entourage2004でタイマー送信?

    Entourage2004使用 送信する際、時間を指定して送信したいのですが、可能でしょうか? ツール - スケジュールで、15,30分単位のタイマー送信は可能なのですが、1分間隔でのタイマー送信はなんらかの方法でできないでしょうか? Entourage以外でも、MacOS10.4で使用できればOKです。

    • 締切済み
    • Mac
  • VBのタイマーイベントについて

    VBでタイマーイベントを利用してある処理を定期的に行なっている状態で その他のイベント(スクロールバーはクリックされている時間が長いのでイベントが重なる可能性が高い)が発生すれば、どちらかが優先されるのでしょうか? タイマーは、その他のイベントが発生しても時刻は刻まれているのでしょうか? よろしくお願いします

  • 通電後、一定時間で切れるタイマーはありませんか。

    通電後、一定時間で切れるタイマーはありませんか。 通電時間で切れるコンセントタイマー探してます 毎回セットしなくても通電時間(10分から3時間程度)で切れるようなコンセントタイマーを探しています。 くせ毛を直すアイロンみたいなものを使っているのですが、何度か切り忘れたことがあり、怖い思いをしたことがあります。その他、就寝時に本を読む際の豆電球のタイマーなどにも使えると思っています。 毎回時間をセットするものか、24時間プログラムタイプはあるのですが、 毎回タイマーをセットするのはわずらわしいし、規則的に使うものでもないのでプログラムするものも違うなと思います。 通電したらタイマーがオンになって、時間がきた時に電源を切る。 また電源をつけたらタイマーがオンになる…を繰り返すものがいいです。 その上、タイマーが働いて切れたのかどうか分かるようなランプなどがついていればなおいいです。 過去に似たような質問があったので文章を流用させていただきました。

  • Do文の中にタイマーを・・・

    VBは初心者ではないのですが、作っているものがとても複雑なものなので教えていただきたいと思い書き込みました。 現在製作中のプログラムにDo文をセットし、Do~Loopの間にタイマーを動かすプログラムを作りたいと思います。 普通にタイマーを起動する場合は Timer1.Enabled = True でよいと思うのですが、タイマーの中にDo文の条件になるように変数を変えていくプログラムが入っているのです。 だからといって、Call文を使うとタイマー内の処理が1回しか行われないので無理です。 なので、「○○ミリ秒後に次の行のプログラムを実行」みたいな構文はないものでしょうか? または、タイマーを起動させ、タイマーが終了したらDo文の中に戻るようなプログラムはありませんか? 難しい質問とはわかっていますがよろしくお願いします。

  • 一定間隔の時間で鳴って止まるアラーム、タイマー

    任意の時刻からスタートさせて、あらかじめ設定した一定間隔の時間でアラームが鳴るリマインダー、タイマーのようなアプリやハードウェアをさがしています。 毎日決まった時刻ならその数だけアラームを携帯やら時計やらで設定しておけば良いのですが、スタート時刻が毎日マチマチな任意の時刻からにしたいので、例えばiphone5付属のリマインダーだと、その都度毎日8~9個を設定するのが面倒なため、スタートボタンを押すだけであとはそこから2時間ごとに鳴ってくれるとありがたいのです。 例えば「2時間」と設定しておいて 7時25分スタート ↓ 9時25分に1回鳴って自動で止まる ↓ 11時25分に1回鳴って自動で止まる ↓ ↓ 2時間ごとに23時25分まで繰り返し というカンジです。 7時25分というのが、ある日は8時40分だったり6時5分だったり、そこからの2時間ごとという事です。 且つ、何秒か鳴った後に自動で止まってくれるとありがたいです。 スタートさせるのは手動スタート or あらかじめ時刻設定しておく、どちらでも選べると良いのですが。 何か情報お持ちの方、よろしくお願いします。

  • ユーザーフォームを起動しながらタイマーのマクロを動かしたい

    現在、ユーザーフォームで入力したデータを各セルに入れてくVBAを書いています。これ自体は問題ないのですが、同時にタイマーのマクロを起動させたいのですが書き方がさっぱりわかりません。 ネットで調べて、タイマーのマクロは書けました。 タイマーのマクロというのは、特定の時間になったらユーザーフォームで打ちこんだデータのブックを送付して特定の宛先にメールするというマクロです。 このタイマーのマクロ自体は普通に動くのですが、設定した時間にユーザーフォームが開かれてるとマクロが動いてくれません。 そしてユーザーフォームは常に開かれている状態なんです。 希望としてはユーザーフォームが開かれている(入力している)時でも、はじめにメッセージボックスなどで「今からメール送信します。しばらくお待ちください。」などとメッセージを出して現状まで入力済みのデータ(ブックを)メールを送信させることが出来るのが希望です。 タイマーのマクロはWorkbook_Openに 指定時刻 = TimeValue("07:30:00") 待ち時間 = TimeValue("00:01:00") Application.OnTime TimeValue(指定時刻), "SendMail", TimeValue(待ち時間)   Call 次のメール送信 みたいな感じで書いてます。 ユーザーフォームが開いている状態でタイマーのマクロ(他のマクロ)を動かすのって無理なんですか? ちなみに、不定期なタイマーの方法がわからなかったので、それもわかれば教えていただけませんか。 一定時間感覚のタイマーはあったのですが、不定期なタイマーのマクロが調べても見つからず… タイマーのマクロを何個も書いてなんとか、一つのタイマー処理が終わったら次のタイマーマクロを呼び出すって方法を取りました。 もし、もっと簡単な書き方などあったらアドバイスお願いします。