2013-08-01 23 views
-1

假設你有一個函數Foo的DLL,它具有非常大的計數,即for(int i = 0; i < 1,000,000,000; i++)while(something == true)類型的循環,並且您希望能夠從外部中斷該函數DLL,最安全的方法是什麼?在DLL中停止操作的安全方法

提前

+0

你真的在用gcc編譯你的代碼到dll中嗎? – Bathsheba

+0

是的,我需要代碼跨平臺,所以決定在MinGW GCC。 – Alex

+0

對可從DLL外部設置的條件進行循環測試。 – alk

回答

1

很多謝聲明DLL,它是由長亞軍測試中的標誌。

向設置此標誌的DLL添加一個方法。導出此方法。

添加訪問該標誌時使用的適當保護。


更新

當標誌被實例化,以建立機械所需要的保護。

對於DLL全局標誌,您可以在DLL初始化期間創建一個DLL全局互斥鎖。

該標誌以及保護其訪問的互斥體不需要從DLL的外部訪問。

+0

只需使用std :: atomic_bool呢? – Bathsheba