2013-02-19 39 views
0

我正在實現一些功能,其中我得到了一組數據庫查詢一不應該鬆散的查詢一段時間讓說一些5分鐘,除非直到查詢執行正常(這是incase數據庫已關閉,我們不會鬆散查詢)。所以,我想要做的是爲每個查詢通過一個不同的線程設置一個計時器,並等待它的時間框架,並在最後如果它仍然存在,將其從隊列中刪除,但是,我不滿意這個解決方案,因爲我必須創建與查詢數量一樣多的線程。有沒有更好的方式來設計這個(環境是VC++),如果問題不清楚,請讓我知道,我會盡量更好地框架它。在VC++中設計一個計時器功能

+0

所以,你想基本上爲查詢添加超時功能,但是,你的當前方法,它是爲每個查詢產生一個新的線程,你不滿意,澄清? – 2013-02-20 02:23:41

+0

爲什麼每個計時器需要單獨的線程?只需存儲到期時間+ 5分鐘。 – 2013-02-20 02:55:19

+0

@Luke:是的,我目前將所有查詢放入隊列中,並在兩種情況下將其刪除。 1.如果查詢成功執行2.如果超時發生在線程上。 – user2063770 2013-02-20 07:12:04

回答

0

一個線程足以檢查讓我們說每10秒鐘你沒有在你的隊列中查詢到達你的隊列,這些隊列的到期時間已到,所以應該中止/回滾。

隊列通常從一端開始生長並從另一端刪除,因此只有在最後一個最早的項目未到達適當時間的查詢時才需要檢查。