- PR -

コンソールアプリケーションでのTimerイベント

1
投稿者投稿内容
IPホン
大ベテラン
会議室デビュー日: 2005/09/13
投稿数: 127
投稿日時: 2007-06-13 17:40
いつもお世話になっております。

ところで、VB2005 Express Editionに関しまして質問させてください。

現在、コンソールアプリケーションにて、Timerイベントで一定時間経てば
処理を行なうような簡単なプログラムを作成したいのですが、そもそも、
コンソールアプリでタイマーイベントは使用できるのでしょうか?
(コードの記述方法など)


フォームを使用してなら以前のVB6で経験あるのですが・・・。

以上、解決情報があるURL先でも構いませんので、よろしくお願いいたします。

Pluto
常連さん
会議室デビュー日: 2002/07/01
投稿数: 40
投稿日時: 2007-06-13 18:12
・System.Threading.Timer
・System.Timers.Timer

ってことかな...
IPホン
大ベテラン
会議室デビュー日: 2005/09/13
投稿数: 127
投稿日時: 2007-06-14 11:37
Plutoさん、

ご返信、ありがとうございました。
下記コードを追加し、現在、テストなど行っております。

簡単ではありますが、下記、行いたいことを記載します。

1.コンソールアプリは立ち上げっぱなしにする。
2.処理の起動となるフラグファイルを監視する。←ここでTimerを使う。(一秒おきなど)
3.このフラグファイルが作成されると処理を実施。
4.処理終了後にこのフラグファイルを削除し、また、待機中に戻す。(2.へ戻る)

ちなみに、うまくいかない所は、4のまた待機状態に戻りたいところです。

以上となります


ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-06-14 11:49
自分だったら Sleep しながらループで監視、かなぁ。
場合によっては(できるのならば)別スレッドを作ってそちらに監視させると
か。

その前に、コンソールアプリである必要はありますか?
立ち上げるにも設定とかありそうなので、ウィンドウアプリにしちゃった方が
楽だと思います。

立ち上げっぱなしで PC 自体を全然さわらないというのであればウィンドウ
が出たままでもかまわないし、他に作業をするのでジャマにならないように
というのであればタスクトレイに入れちゃうようにしてもいいし。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
IPホン
大ベテラン
会議室デビュー日: 2005/09/13
投稿数: 127
投稿日時: 2007-06-14 12:11
ぽぴ王子さん、ご返信ありがとうございます。

実は、ぽぴ王子さん仰るとおり、sleepしてLoopというのも行っていました。
こちらへ移行するのも考えて見ます。

また、Windowsベースでの作成も検討してみます。

いっきゅう
大ベテラン
会議室デビュー日: 2004/04/04
投稿数: 153
お住まい・勤務地: 兵庫
投稿日時: 2007-06-14 12:30
C#ですけどThreadのサンプルがあったのでご参考に
コード:
using System;
using System.Threading;

namespace threadTest
{
	class ThreadTest
	{
		static void Main(string[] args)
		{
			Thread threadA = new Thread(new ThreadStart(ThreadMethod));

			Console.WriteLine("work start!! ");
			// 処理の起動
			threadA.Start();

			// 処理の監視
			while ( threadA.IsAlive)
			{
				Thread.Sleep(500);
				Console.WriteLine("  !!check!!"); 
			}
			Console.WriteLine("work end!! "); 
		}
		private static void ThreadMethod() 
		{
			// 処理の内容
			for(int i=0; i<100; i++)
			{
				Thread.Sleep(50);
				Console.WriteLine("  working"); 
			}
		}
	}
}


Pluto
常連さん
会議室デビュー日: 2002/07/01
投稿数: 40
投稿日時: 2007-06-14 13:22
引用:

2.処理の起動となるフラグファイルを監視する。←ここでTimerを使う。(一秒おきなど)
3.このフラグファイルが作成されると処理を実施。


ファイルの変更通知なら、System.IO.FileSystemWatcher もありかなぁ...
1

スキルアップ/キャリアアップ(JOB@IT)