- PR -

タイマコントロールイベント

1
投稿者投稿内容
茶太郎
ベテラン
会議室デビュー日: 2005/02/23
投稿数: 57
投稿日時: 2006-01-16 17:04
お世話になります。

Form1にて時間がかかる処理を実行中に参照設定したDLL(Form2)を
起動しています。
Form2にはタイマコントロールを配置して処理中の間に間隔的に
ラベルの文字を変更していくようにしたいのですが、なぜか
タイマのイベント(Tick)が発生しません。
フォームロード時にInterval、Enabledを設定しています。

なぜイベントが発生しないのかどなたかご存知の方教えてください。
宜しくお願い致します。
kanai
ベテラン
会議室デビュー日: 2004/09/13
投稿数: 98
投稿日時: 2006-01-16 17:18
こんにちは、kanaiです。

・Form1の時間がかかる処理
・Form2のタイマー処理
の2つが同じスレッドで動作しているからではないでしょうか。

Form1の時間がかかる処理を別スレッドで動かすようにすれば
よいと思います。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-16 23:50
引用:

茶太郎さんの書き込み (2006-01-16 17:04) より:

Form1にて時間がかかる処理を実行中に参照設定したDLL(Form2)を起動しています。


どうやって起動しています?
モジュールを Load していますか?
Process を開始しているんですか?

引用:

Form2にはタイマコントロールを配置して処理中の間に間隔的に
ラベルの文字を変更していくようにしたいのですが、なぜか
タイマのイベント(Tick)が発生しません。


多分、Form1 の処理で Busy 状態になっているからです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
茶太郎
ベテラン
会議室デビュー日: 2005/02/23
投稿数: 57
投稿日時: 2006-01-17 09:31
kanaiさん、じゃんぬねっとさん、ありがとうございます。

フォームの起動はインスタンス生成してshowメソッドで行っています。
Form2は起動しますがタイマイベントが発生せずに応答なしとなって
しまいます。kanaiさんが言うように別スレッドで処理させるしかな
いのでしょうか?

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-17 09:37
引用:

茶太郎さんの書き込み (2006-01-17 09:31) より:

フォームの起動はインスタンス生成してshowメソッドで行っています。


起動というものだから、別プロセスかと思いました...

引用:

Form2は起動しますがタイマイベントが発生せずに応答なしとなって
しまいます。
kanaiさんが言うように別スレッドで処理させるしかな
いのでしょうか?


スレッド化してタイマを使うとなると別の問題を作りこむことになります。
処理進捗を示すだけであれば、適宜 Form2 へ制御を返すだけでも良いですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-01-17 09:39
動きがわかりにくいからあんまり好きではないけど
DoEvents とか、
http://dobon.net/vb/dotnet/vb6/doevents.html
1

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