好的,我一直在想這個問題一段時間,我只能想出一個解決方案。 我的問題是以下幾種: - > Im處理USB閃存 - >我將其大小分爲3部分 - >我有3個線程,每個線程都有一個指針,並且這3個部分分配給樹線程;C/C++多指針?
現在這是錯誤的我的頭部的部分: 如果我只有一個處理handeling usb和如果,對於每個線程,我設置一個指針使用唯一的處理我有,這將是一個reall混亂。
Theard 1將指針設置爲0;
線程2將指針設置爲100;
線程3將指針設置爲500;
對於每個線程,指針將在500處,因爲它將是他將要做的最後一個地方。
我想讓每個線程都從一個地方開始。 我認爲我的問題唯一的解決方案是每個線程都有不同的句柄,但是我發現這個解決方案非常糟糕和不切實際。 如果有人知道我的問題更好的解決方案,我會愛上! 無論如何,謝謝!
這是2個功能IM使用(hanlde和指針):
指針:
DWORD WINAPI SetFilePointer( _In_ HANDLE hFile, _In_ LONG lDistanceToMove, _Inout_opt_ PLONG lpDistanceToMoveHigh, _In_ DWORD dwMoveMethod );
處理程序:
HANDLE WINAPI CreateFile(
_In_ LPCTSTR lpFileName,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_In_ DWORD dwCreationDisposition,
_In_opt_ HANDLE hTemplateFile
_In_ DWORD dwFlagsAndAttributes,
);
一個指針始終是一個好主意。你應該創建一個線程安全的東西,它包含指針並且可以將數據分發到所有線程 –
但是我需要爲每個線程設置一個指針,全部在同一個文件中。 「安全」的方式或我對它的方式有1處理每個線程,但這似乎是不夠的 – jeyejow