看板 C_and_CPP 關於我們 聯絡資訊
: 補充說明: : 補充WorkerThreadFunction_1的定義 : /////////////////////////////////////////// : UINT CTest1117Dlg::WorkerThreadFunction_1(LPVOID pParam) : /////////////////////////////////////////// : { : CFile file; : CCriticalSection cs; : cs.Lock(); 我是不知道CCriticalSection的運作方式拉 也不知道擺在thread裡能不能鎖到別的thread(我覺得不行) : : file.Open(dpath,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite); : : CString strValue ; : : for(int i=1;i<100;i++) : { : file.SeekToEnd(); //將指標移至文件末尾進行追加 問題是在這邊阿,要是你有鎖住,那就是輪流寫進文件裡 那當然會是一堆12345 要是你改成說重新寫一份 那文件最後的內容,就是最後寫的thread所寫的內容 也就會只有一組patern了 : strValue="1"; : file.Write(strValue,strValue.GetLength()); : } : //關閉文件 : file.Close(); : cs.Unlock(); : return 0; : } : : 懇請版上朋友不吝指教小弟錯誤的地方 謝謝 : : -- -- 我的夢想是,在希恰版上實況我自己做的遊戲 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.252.74.111
slimbody15:c大 感謝你的回文 11/22 22:39
slimbody15:不過說道CriticalSection其他有semaphore mutex event 11/22 22:42
slimbody15:雖然書上有說差異 不過目前我也不是很有感覺甚麼時機 11/22 22:42
slimbody15:該用甚麼 11/22 22:42
purpose:那是MFC對EnterCriticalSection()與CRITICAL_SECTION包裝 11/22 22:47
purpose:>CRITICAL_SECTION的執行緒永遠不會處於「饑餓」的狀態。 11/22 22:48
purpose:>EnterCriticalSection的呼叫最後還是會逾時,並引發例外 11/22 22:48
purpose:剛初步查了一下,目的差不多,但是像 semaphore mutex 是 11/22 22:53
purpose:Kernel Object,功能比較強,但是要進入 Kernl 效率較差 11/22 22:53
slimbody15:p大謝謝阿 惠我良多~~!!! 11/22 23:46