Лекция - Нишки
| Информационни технологии | 2009-12-04 | 62 сваляния |
типове нишки: 1.UI с цикли за съобщения; прозорци; пр: обмен файлове.
2. работни фаонови задачи; пр. анимация на изображения.
създаване работна нишка с MFC: вместо ::CreateThread() - CWinThread::AfxBeginThread() [инициялизира среда на изпълнение, проверява състоянието й, обезопасява достъпа до run-time ф-ии].
CWinThread* pThread = AfxBeginThread( ThreadFunction, &threadinfo);
/
* CWinThread* AfxBeginThread (AFX_THREADPROC pfnThreadProc, LPVOID pParam, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTS lpSecurityAttrs = NULL) */ създаване UIнишка с MFC: има свой клас производе на CWinThread (подобен на клас на прил.):
class CUIThread : public CWinThread m_pMainWndShowWindow(..);
{ DECLARE_DYNCREATE (CUIThread) m_pMainWndUpdateWindow();
public: virtual BOOL InitInstance(); }; return TRUE; }
IMPLEMENT_DYNCREATE (CUIThread, CWinThread)western" style="text-indent: 0in; margin-bottom: 0in"> BOOL CUIThread::IniInstance() public CFrameWindow
{ m_pMainWnd = new CMainWindow; { // констр. - пуска нишката
// методи за обр. съобщения
п
реустановяване на нишка с MFC: CWinThread::SuspendThread(); CWinThread:: ResumeThread(); брояч на прустановяването (0 стартитване ).
приспиване на нишка с MFC: ::Sleep(време ); Sleep( 0 );
пр: анимации на множество обекти; анимации през различни интервали (Sleep( 0)).
завършване на нишка с MFC: 1. return;
2. AfxEndThread(); ::PostQuitMessage();
т
ест на състояние: DWORD test; ::GetExitCodeThread(pThreadm_hThread, &test);
изтриване обект от клас CWinThread: 1. MFC авт. изтрива указател към обекта при завършване на нишката.Дестукторът на CWinThread затваря и манипулатора й. Проблем възникава с за привършила нишка. Ако копираме pThreadm_hThread в променлива в нишката преди завършването й отново възможен проблем. Тогава:
-
C
WinThread* pThread = AfxBeginThread (ThreadFunc, NULL, Thread_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
pTheadm_bAutoDelete = FALSE; pThreadResumeThread();
..
Тагове от реферата: съобения, екция, прозорц, ипове, нишки











