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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。