2010-04-20 70 views
3

我一直在使用Semaphore class來創建信號量。但是,這些示例使用託管代碼(requires/clr),並且我需要使用非託管代碼,因爲它似乎FreeType不喜歡使用託管代碼。非託管代碼中的信號量

如何創建兩個在非託管代碼中使用信號量的簡單線程?

回答

3

使用本機Windows semaphore objects

+0

太棒了,正是我一直在尋找,但無法找到。謝謝。 – Dororo 2010-04-20 12:35:53

2

您可以嘗試使用Boost.interprocess。它提供信號量。見here

1

你想要在kernel32中實現的CreateSemaphore。一般模式是創建一個名稱或無名信號量對象以使用兩個線程。您可以使用OpenSemaphore獲取現有命名信號量的句柄。在信號量上適當地設置初始計數和最大計數,然後使用Wait Functions之一,通過減少信號量的計數來對共享資源進行邏輯鎖定。當您的線程使用完資源後,請致電ReleaseSemaphore增加可用的鎖定計數。