我正在開發一個Windows窗體應用程序連接到一個硬件,獲取大量的數據(〜1 GSample /秒),處理它,並吐出到屏幕點擊按鈕。我現在試圖在一個可以隨時啓動/停止的循環中自動化這個過程,這樣我就可以在調整採集硬件的輸入的同時監視它。我認爲很明顯,我需要在一個單獨的線程上做到這一點,但我有一段時間試圖在C++/cli中做到這一點 - 我發現了一些使用MFC的好例子,這是不支持的表現。C++多線程與視覺演播室快遞2010窗體應用程序
具體做法是:我的任務是按它在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));
}
}
我希望在單獨的線程中執行此代碼,以便主程序可以監聽用戶請求以停止操作。如果沒有線程,我現在必須強制退出程序(或將其設置爲運行固定次數)來停止它。
是否有任何建議,我可能會在單獨的線程上運行此代碼?
我(失敗)嘗試了幾件事情已經:
修改This Microsoft Example給出的例子。問題:需要/clr:oldSyntax選項,它與程序中的其他1300行代碼不兼容。
試圖做我在Java中所做的事情(聲明一個全局線程並從代碼中的任何一點開始/停止它)問題:編譯器不會讓我聲明一個全局System :: Threading.Thread
。this美麗的例子問題:需要MFC
任何建議,將不勝感激
我只是發佈消息到主窗口,但我是老派! – 2011-04-16 16:24:23