|
分類:[VB.NET/VB2005 以降]
現在、XP環境でVB6で作成したプログラムをVB2005にコンバート作業を行っています。
VB6の標準EXEとVB6のActivexEXEをVB2005に変換してしまうとActivexEXEがVB6の時と同じ動きになりません。 処理の流れは 1.標準EXE内の「作成ボタン」を押すと、クラスのメソッド でactivexEXEを起動 2.起動されたactivexEXEは自EXEのタイマーイベント処理で 起動時からの経過時間をラベル表示 3.activexEXE起動後、続きの標準EXEのコード内で ファイルの作成(かなり重い処理)を行う。 4.ファイルの作成が終わると、activexEXEに通知して処理を終了する。
問題は、activexEXEをVB2005にすると経過時間の表示が止まってしまいます。結果出力は正しいので内部でカウントはされていますが。 ファイルの作成で処理が占有されてしまっている?
今まで試みた方法 ・Background Workerによるマルチスレッド化。 標準EXE、activexEXEでそれぞれ試してみましたが表示が固まって しまいました。 ・activexEXEをVB2005でcom登録 コンパイル時のcom相互登録をするのに設定でクラスライブラリに 変更。標準EXEからcom登録による参照は可能になったが、クラス ライブラリがDLLのためか現象変わらず。
このような現象を対処された方ご教授願います。 よろしくお願い致します。
|