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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.3442 の関連記事表示

<< 0 >>
■3442  Re[7]: .NET2.0でのMicrosoft.mshtml.dllの動作について
□投稿者/ YAS -(2006/05/06(Sat) 16:48:59)
>

    分類:[C#] 

    開発環境でもそのエラーがでるのでしょうか?
    それとも配付先の環境のみでエラーになるのでしょうか?
記事No.3418 のレス /0過去ログ3より / 関連記事表示
削除チェック/

■3442  DLLの起動について(C#)
□投稿者/ ヒナ -(2007/05/10(Thu) 16:11:23)

    分類:[C# (Windows)] 

    初めまして、ヒナです。

    windowsアプリケーションで開発したメニュー画面より

    DLLを起動させるプログラムを作成したのですが、

    起動したDLLが重い処理の為、起動元のメニュー画面

    が固まった状態になってします。

    この固まった画面の状態を回避する方法があったらと思い

    投稿させて頂きました。

    何かいい方法はあるのでしょうか? よろしくお願いします。

    開発環境 C# 2005
親記事 /過去ログ12より / 関連記事表示
削除チェック/

■3443  Re[1]: DLLの起動について(C#)
□投稿者/ 魔界の仮面弁士 -(2007/05/10(Thu) 16:20:17)
    No3442 (ヒナ さん) に返信
    > DLLを起動させるプログラムを作成したのですが、
    > 起動したDLLが重い処理の為、起動元のメニュー画面
    > が固まった状態になってします。

    『DLL を起動させる』というのが、どういう処理なのかわかりませんが、
    BackgroundWorker を使って起動してみては如何でしょう。
記事No.3442 のレス /過去ログ12より / 関連記事表示
削除チェック/

■3448  Re[2]: DLLの起動について(C#)
□投稿者/ ヒナ -(2007/05/10(Thu) 17:16:36)
    ヒナです、魔界の仮面弁士さん回答ありがとうございます。

    > 『DLL を起動させる』というのが、どういう処理なのかわかりませんが、
    windowsアプリケーションで作成したメニュー画面のソリューションより
    DLLを参照設定。このDLLと言うのは帳票を作成するDLLです。

    > BackgroundWorker を使って起動してみては如何でしょう。
    BackgroundWorkerについて調べてみたのですが、
    参照したDLLをBackgroundWorkerで起動することができるのかどうか
    分かりませんでした。
    参照したDLLをBackgroundWorkerで起動することは可能なのでしょうか?よろしくお願いします。
記事No.3442 のレス /過去ログ12より / 関連記事表示
削除チェック/

■3457  Re[3]: DLLの起動について(C#)
□投稿者/ はつね -(2007/05/10(Thu) 18:28:29)
>
    No3448 (ヒナ さん) に返信
    > windowsアプリケーションで作成したメニュー画面のソリューションより
    > DLLを参照設定。このDLLと言うのは帳票を作成するDLLです。

    帳票を作成するDLLとの事ですが、帳票を作成状況を表示するようなUIは実装しないのでしょうか。
    重たい処理=長時間かかる処理だとすれば、進行状況を表示するようなUIなDLLにするのも一案です。
    もちろんBackgroudWorker等を使って、帳票作成中も別作業を行うような実現方法もあります。
記事No.3442 のレス /過去ログ12より / 関連記事表示
削除チェック/

■3459  Re[3]: DLLの起動について(C#)
□投稿者/ 魔界の仮面弁士 -(2007/05/10(Thu) 19:59:05)
    2007/05/10(Thu) 20:06:52 編集(投稿者)

    No3448 (ヒナ さん) に返信
    > 参照したDLLをBackgroundWorkerで起動することは可能なのでしょうか?
    と言われましても、こちらはその DLL の仕様を知らないので……。

    > よろしくお願いします。
    コードの概念だけでいえば、こんな感じかな。

    <修正前>
    =========================================================
    void button1_Click(…)
    {
     // Print メソッドの処理が長いと、処理完了までの間、画面が固まってしまう。
     bool successed = 帳票クラス.Print(パラメータ);
     if(successed)
     …
    }
    =========================================================
      ↓
      ↓ BackgroundWorker を使った非同期処理に書きかえる場合
      ↓
    <修正後>
    =========================================================
    void button1_Click(…)
    {
     // RunWorkerAsync で、バックグラウンド処理の開始を指示する。
     // 下記の行を呼び出したあとも、画面は引き続き利用可能。
     backgroundWorker1.RunWorkerAsync(パラメータ);
    }

    void backgroundWorker1_DoWork(…)
    {
     // DoWork イベント内に、実際の処理を記述する。
     // この中で長い処理を行っても、画面側には影響を与えないというのが利点。
     e.Result = 帳票クラス.Print(e.Argument);

     // なお、この中からフォーム上のコントロールなどを直接操作するのは NG です。
    }

    void backgroundWorker1_RunWorkerCompleted(…)
    {
     // RunWorkerCompleted イベント内に、処理完了後の記述を行う。
     bool successed = (bool)e.Result;
     if(successed)
     …
    }
    =========================================================

    ちなみに、処理の進捗状況を表示したい場合などは、ProgressChanged イベントを併用します。
    (DoWork 中に ReportProgress メソッドを適宜呼び出すと、ProgressChanged に状況が通知されます)
    http://www.microsoft.com/japan/msdn/vbasic/migration/tips/BackgroundWorker/
記事No.3442 のレス /過去ログ12より / 関連記事表示
削除チェック/

■3458  Re[4]: DLLの起動について(C#)
□投稿者/ ヒナ -(2007/05/10(Thu) 19:47:04)
    ヒナです、はつねさん回答ありがとうございました。

    > 帳票を作成するDLLとの事ですが、帳票を作成状況を表示するようなUIは実装しないのでしょうか。
    実装していません。帳票を作成するDLL側でUIを実装しないで、起動元の
    方で画面が固まらないようにする方法を探しています。

    > もちろんBackgroudWorker等を使って、帳票作成中も別作業を行うような実現方法もあります。
    BackgroudWorkerの説明を読んだのですが、BackgroudWorkerを使って参照したDLLを起動させる
    やり方が分かりませんでした。(起動もとのプログラム内でBackgroudWorkerを使って処理するやり方はなんとか理解しましたが・・・)

    やり方のヒントがありましたら、よろしくお願いします。
記事No.3442 のレス /過去ログ12より / 関連記事表示
削除チェック/

■3460  Re[5]: DLLの起動について(C#)
□投稿者/ ヒナ -(2007/05/10(Thu) 20:43:45)
    ヒナです、魔界の仮面弁士さん回答ありがとうございます。

    分かりやすい例で、私が作りたかったものそのものでした。

    BackgroundWorker というコンポーネントも知り勉強できました。

    ありがとうござました。


    改めて、はつねさん、魔界の仮面弁士さん回答ありがとうございました。
記事No.3442 のレス / END /過去ログ12より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -