プログラミング研究所 プログラミング研究所 http://www.program-lab.jp/
プログラミング研究所
プログラム研究自作ソフトウェアプログラムメモリンク


  • カテゴリ別アーカイブ

    .NET Framework
    C++/CLI
    DirectX
    GBA
    JavaScript
    OSSの移植
    PHP
    Win32/64
    WordPress
    その他
    ソフトウェアの設定
    ツール
    ライブラリ
    自作ソフト
    製品レビュー


  • エントリ一覧


    Syndicate this site (XML)

    Powered by
    Movable Type







  • 管理者:NMVL

    nmvl★program-lab.jp
    ※アドレスの ★ を @ に置き換えてください。

    釣りの話題はこちらから
    www.fishing.hokkaido.jp






    « FILETIME構造体 → System::DateTime 変換 | メイン | アイテムを選択している場合のみコンテキストメニューを表示させる(リストビュー) »

  • マルチスレッド処理(BackgroundWorker)追記 【C++/CLI】
    マルチスレッド処理(BackgroundWorker)のDoWark内の処理結果をRunWorkerCompletedに伝える方法

    Resultプロパティ使用する方法
    System::Void DoWork( System::Object^ sender, System::ComponentModel::DoWorkEventArgs^ e )
    {
        // ~宣言・処理は省略~
        e->Result = pcObject;
    }

    System::Void RunWorkerCompleted( System::Object^ sender, System::ComponentModel::RunWorkerCompletedEventArgs^ e )
    {
        // ~宣言・処理は省略~
        pcObject = e->Result;
    }


    Cancelプロパティ使用する方法
    System::Void DoWork( System::Object^ sender, System::ComponentModel::DoWorkEventArgs^ e )
    {
        e->Cancel = true;
    }

    System::Void RunWorkerCompleted( System::Object^ sender, System::ComponentModel::RunWorkerCompletedEventArgs^ e )
    {
        if( e->Cancelled == true )
        {
            // キャンセル時の処理
        }
    }

    Resultプロパティは、Cancel,Errorプロパティの値を調べてからやらないとダメなので、
    単純に成功/失敗だけの情報であればCancelプロパティを使うのが一番簡単。



    投稿者 NMVL : 2006年5月23日 15:09