- PR -

非同期クラス(DLL)の同期的な動作について

1
投稿者投稿内容
sai
会議室デビュー日: 2006/02/16
投稿数: 4
投稿日時: 2007-08-20 15:27
Windows、C#、framework2.0または3.0

現在、画像解析をおこなうDLLがあり、非同期で動いています。
これには終了ステータスを返してくれることがなく、内容も公開されていません。
(著作権的には問題のない内容で行っています)

具体的に下記のようにしたいのです。

// 1
DLL.設定値 = 1;
DLL.実行処理();  ←dataset(xsd)にデータを作成してくれる。
// 2
form内.解析結果表示(); ←上記datasetをもとに画面を編集。
MessageBox("完了しました。");

としたいのです。
//1はできるのですが、非同期なので当然のように// 2以降はうまくいきません。

やってみたこと:
timerを用意して、その1.
  予想処理周期(2秒くらい)でまわしてdatasetの件数を比較。
  変化していたら//2以降と同様の処理を実行。
  →これだと確実性に書ける&処理が怪しかった(一瞬とまる)
その2.
  単純にマルチスレッド処理
  →裏では処理が動き続けているらしく処理が進まない。  
   あとはスタックオーバーフローエラーが多く発生してしまいます。

何かよい方法はないでしょうか。
よろしくお願いします。

渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-08-20 17:42
引用:

これには終了ステータスを返してくれることがなく、内容も公開されていません。



処理完了を通知するためのイベントやコールバック(.NET の場合はデリゲート)も定義されていないんですか?

あるいは、処理状態を公開するプロパティやフィールドすらも用意されていないんでしょうか?

すべて「NO」であるなら処置ナシです。

1

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