C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

VB.NET クラスライブラリでのタイマー処理について /ナック (24/01/23(Tue) 11:52) #102882
Re[1]: VB.NET クラスライブラリでのタイマー処理について /WebSurfer (24/01/23(Tue) 12:40) #102883
  └ Re[2]: VB.NET クラスライブラリでのタイマー処理について /ナック (24/01/23(Tue) 17:21) #102884 解決済み


親記事 / ▼[ 102883 ]
■102882 / 親階層)  VB.NET クラスライブラリでのタイマー処理について
□投稿者/ ナック (1回)-(2024/01/23(Tue) 11:52:58)

分類:[.NET 全般] 

Windows フォームアプリで使用できる Timer のように、一定時間間隔(1秒)ごとに実行する機能をクラスライブラリで作成したいと考えています。Timer と同等の機能はクラスライブラリにも存在するのでしょうか。

最初は Do〜Loop で「現在時刻を取得し、ミリ秒がゼロになったときのみ実行する」というコードを考えたのですが、あまり格好いいとは言えないように思われるので。

詳しい人がおられましたら、ご教示をよろしくお願いします。
[ □ Tree ] 返信 編集キー/

▲[ 102882 ] / ▼[ 102884 ]
■102883 / 1階層)  Re[1]: VB.NET クラスライブラリでのタイマー処理について
□投稿者/ WebSurfer (2882回)-(2024/01/23(Tue) 12:40:23)
No102882 (ナック さん) に返信
> Windows フォームアプリで使用できる Timer のように、一定時間間隔(1秒)ごとに実行する機能をクラスライブラリで作成したいと考えています。
> Timer と同等の機能はクラスライブラリにも存在するのでしょうか。

質問者さんの言う「クラスライブラリ」というのが何か自分の想像の範囲を超えたもの
かもしれませんが・・・

「C# timer」などをキーワードにググればいろいろ参考になる記事が見つかるはずです。
例えば:

タイマにより一定時間間隔で処理を行うには?(サーバベースタイマ編)
https://atmarkit.itmedia.co.jp/ait/articles/0511/11/news119.html

それらが質問者さんの言う「クラスライブラリ」では使えないということなら、使えない
理由を書いてください。
[ 親 102882 / □ Tree ] 返信 編集キー/

▲[ 102883 ] / 返信無し
■102884 / 2階層)  Re[2]: VB.NET クラスライブラリでのタイマー処理について
□投稿者/ ナック (3回)-(2024/01/23(Tue) 17:21:16)
Visual Studio の新規プロジェクト作成で「Windowsフォームアプリ」ではなく「クラスライブラリ」を選択してdllファイルを作成する際、System.Windows.Forms.Timer クラスと同等の機能が欲しいと思ったため、こういう質問をさせていただきました。

記載していただいたサイト等を参考にした結果、以下のコードで解決しました。初歩的な質問にヒントを与えていただき、ありがとうございました。


Shared Sub Timer_Start(ByRef aTimer As Timer, ByVal Time_Interval As Double)

'タイマー開始
Set_Timer(aTimer, Time_Interval)

End Sub

Shared Sub Timer_Close(ByVal aTimer As Timers.Timer)

'タイマー停止
aTimer.Stop()
aTimer.Dispose()

End Sub

Private Shared Sub Set_Timer(ByRef aTimer As Timer, ByVal Time_Interval As Double)

aTimer = New Timer(Time_Interval)

AddHandler aTimer.Elapsed, AddressOf OnTimed_Event

aTimer.AutoReset = True
aTimer.Enabled = True

End Sub

Private Shared Sub OnTimed_Event(source As Object, e As ElapsedEventArgs)

'ここに一定間隔で実行するコードを記述

End Sub
解決済み
[ 親 102882 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -