私は、ハードウェアに接続し、大量のデータ(〜1 GSample /秒)を取得して処理し、ボタンをクリックすると画面に出力するWindowsフォームアプリケーションを開発しています。現在、取得ハードウェアへの入力を調整しながら監視できるように、いつでも開始/停止できるループでプロセスを自動化しようとしています。別のスレッドでこれを行う必要があることは明らかだと思いますが、c ++ /cliでこれを行うのにかなりの時間がかかります-MFCを使用した良い例をいくつか見つけましたが、これはによってサポートされていません特急。
具体的には、私のタスクは、Form1.hで処理されるボタンを押して、次のコード(現在は無限ループ)を含むメインファイルAcquisition.cppの関数を呼び出すことです。
void Form1::realTimeUpdate()
{
// live is a boolean variable set by a button on the form
while(live)
{
displayVariance(getVar(getQuadratures(100),nbrSamples));
}
}
このコードを別のスレッドで実行して、メインプログラムがユーザーの操作停止要求をリッスンできるようにします。スレッド化せずに、私は現在、プログラムを強制的に終了する(または一定の回数実行するように設定する)必要があります。
このコードを別のスレッドで実行する方法について何か提案はありますか?
私は(失敗して)すでにいくつかのことを試しました:
このMicrosoftの例に示されている例を変更します。問題:プログラム内の他の1300行のコードと互換性のない/ clr:oldSyntaxオプションが必要です。
Javaで行うことを実行しようとしています(グローバルスレッドを宣言し、コード内の任意の場所から開始/停止します。問題:コンパイラーでグローバルSystem::Threading.Threadを宣言できません
この美しい例。問題:MFCが必要です。
任意の提案をいただければ幸いです!