質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Visual Basic .NET

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

Q&A

解決済

2回答

3714閲覧

複数のタイマーを動的に実行する方法

backfever

総合スコア14

Visual Basic .NET

Microsoft Visual Basic .NET (VB.NET)とはオブジェクト志向のプログラム言語です。 Microsoft"s Visual Basic 6 のバージョンアップとしてみることができますが、Microsoft.NET Frameworktによって動かされています。

0グッド

0クリップ

投稿2019/06/17 09:09

前提・実現したいこと

テーブルA

場所
東京90
大阪100
名古屋105
福岡98
札幌85

上記のようなテーブルAがあり、テーブルAは、数分毎に外部から値が更新されます。
プログラムから、やはり数分毎に各都市の値をチェックし100を超えていたら
各都市の担当者にメールを送信し、30分後に再度チェックし、まだ100を超えているならば
再度メールを送信するプログラムを作ろうと思っています。

この”30分後”というタイマーの設定方法がわかりません。
プログラム上は
・テーブルAをチェックするタイマー
が必要なのはわかりますが、場所は今後追加される可能性があり、プログラム上に各都市用の5つのタイマーを設置しておくというやり方も使えません。
動的にタイマーを追加するやり方等はあるのでしょうか?

これを使うといいよ、などのアドバイスでも構いませんので、よろしくおねがいします。

補足情報(FW/ツールのバージョンなど)

使用ツール及び言語は
Visual Studio 2015
VB.net
Sqlserver 2012
となります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hihijiji

2019/06/17 09:48

送信条件に「ただし30分以内にメールを送った都市にはメールを送信しない」 って条件を追加すればほぼ同じ結果になるのでは?
backfever

2019/06/18 01:08

これはテーブルAをチェックするタイマーでメール送信処理も行うということですか?
hihijiji

2019/06/18 01:14

> この”30分後”というタイマーの設定方法がわかりません に対してのアドバイスです。 それ以外もわからないのであれば、それはプログラムの質問ではなく、設計依頼または作成依頼です。
backfever

2019/06/18 01:29

書き方が下手で申し訳ありません。 基本的に質問したいことは、複数のタイマー(開始から30分経ったらイベントが発生する)を動的に作成したいということです。それを実現させるのは何を使用すべきなのか?ということが知りたかったのです。
hihijiji

2019/06/18 01:32

「数分毎に各都市の値をチェックし100を超えていたら各都市の担当者にメールを送信」 の部分はできているのですか?
backfever

2019/06/18 01:36

そこはできています。質問の全体像として補足したのですが、余計な情報だったかもしれません。
hihijiji

2019/06/18 01:47

だったらそれを、(各都市にメールを送った時刻をどこかに保持しておいて) 各都市の値をチェックし100を超えていて かつ 30分以内にメールを送ってなかったら メールを送信する に作り直すだけでいいのでは? 媒体にメールを使っている以上、多少の誤差は許容範囲でしょうから
backfever

2019/06/18 01:59 編集

そういうやり方もありますね。30分後=30分のタイマーということに固執しすぎていたかもしれません。回答ありがとうございます。検討してみます。
guest

回答2

0

自己解決

別に1分毎のタイマーを用意して、経過時間をチェックするように対応することにしました。

投稿2019/06/21 07:12

backfever

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

タイマは動的に生成できますよ

投稿2019/06/17 09:18

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

backfever

2019/06/18 01:05

回答ありがとうございます。 具体的に何を使用するのでしょうか?
y_waiwai

2019/06/18 03:58

timer t1=new timer();
backfever

2019/06/21 07:10

回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問