您好,登錄后才能下訂單哦!
typedef struct MsgData { SLIST_ENTRY NextEntry;//下一個結點 INT ID; char buff[20]; }STDATA,*PSTDATA; void CtestThreadDlg::OnBnClickedButton17() { PSLIST_ENTRY pListFirstItem,pListItem; PSLIST_HEADER pHead; //創建頭結點 pHead = (PSLIST_HEADER)_aligned_malloc(sizeof(SLIST_HEADER), MEMORY_ALLOCATION_ALIGNMENT); //初始化頭結點 InitializeSListHead(pHead); //新結點數據 PSTDATA stPdata = (PSTDATA)_aligned_malloc(sizeof(STDATA), MEMORY_ALLOCATION_ALIGNMENT); stPdata->ID = 1200; strcpy_s(stPdata->buff, 20,"message"); //添加到隊列中,從頭添加節點,返回前一個節點 pListFirstItem = InterlockedPushEntrySList(pHead, &stPdata->NextEntry); pListItem = InterlockedPopEntrySList(pHead);//從頭部取出數據 PSTDATA pData = (PSTDATA)pListItem; CString str(pData->buff); TRACE(str+_T("\n")); _aligned_free(pListItem);//釋放內存 InterlockedFlushSList(pHead); pListItem = InterlockedPopEntrySList(pHead); if (pListItem == NULL) { TRACE(_T("已清空\n")); } _aligned_free(pHead); }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。