UINT Collect_Function2(LPVOID pParam) { CSingleLock Lock1(&(MAINAPP->StopMutex)); Lock1.Lock(); MAINAPP->StopThread=AfxBeginThread(Function1,NULL); int i; CString Path; for(i=0;i<MAINAPP->Directories.GetSize();i++) { Path=MAINAPP->Directories[i]; CStringArray *t=MAINAPP->AllFiles[i]; CollectFiles(Path,*t); delete t; } MAINAPP->AllFiles.RemoveAll(); Lock1.Unlock(); return 0; }
bool CNetConnection::StealFrom(CNameObject * pObject,UINT Param) { CAutoLock Lock1(m_RecvLock); CAutoLock Lock2(m_SendLock); PrintNetLog(0xffffffff,"(%d)执行连接替换(%d)!",GetID(),pObject->GetID()); if(pObject->IsKindOf(GET_CLASS_INFO(CNetConnection))) { Destory(); if(!CNameObject::StealFrom(pObject,Param)) return false; CNetConnection * pConnection=(CNetConnection *)pObject; if(!m_Socket.StealFrom(&(pConnection->m_Socket),Param)) return false; m_pServer=pConnection->m_pServer; m_WantClose=pConnection->m_WantClose; m_pEpollEventRouter=pConnection->m_pEpollEventRouter; pConnection->m_pEpollEventRouter=NULL; if(m_pEpollEventRouter) m_pEpollEventRouter->SetEventHander(this); CEpollEventObject * pEpollEventObject; m_RecvQueue.Create(pConnection->m_RecvQueue.GetBufferSize()); while(pConnection->m_RecvQueue.PopFront(pEpollEventObject)) { m_RecvQueue.PushBack(pEpollEventObject); } m_SendQueue.Create(pConnection->m_SendQueue.GetBufferSize()); while(pConnection->m_SendQueue.PopFront(pEpollEventObject)) { m_SendQueue.PushBack(pEpollEventObject); } return true; } return false; }
void CDjvuDlg::OnStart() { CString T; UpdateData(DlgGet); for(int i=0;i<Items.GetSize();i++) { if(Items[i]->IsChecked()) { T+=Items[i]->GetString(); } if(i<Items.GetSize()-1) T+=" "; } int a=5; CString T1='"'+CString("g:\\My software\\_IMAGE\\_DJVU\\DjVu Small v0.3\\bin\\djvudecode.exe")+'"'; T=T1+CString(" ")+T; STARTUPINFO si; GetStartupInfo(&si); PROCESS_INFORMATION &pi1=MAINAPP->pi; if(!CreateProcess(NULL, (char *)LPCSTR(T), NULL, NULL, FALSE, DETACHED_PROCESS | CREATE_SUSPENDED | IDLE_PRIORITY_CLASS, NULL, NULL, &si, &pi1)) { int a=5; } else { temp=T; UpdateData(DlgSet); ListBox1.AddString(T); UpdateList(); MAINAPP->StopThread=0; CSingleLock Lock1(&(MAINAPP->StopMutex)); Lock1.Lock(); MAINAPP->m_pMainWnd->SetWindowText("Working"); OnStartUI(); ResumeThread(pi1.hThread); MAINAPP->StopThread=AfxBeginThread(Function1,NULL); } int b=5; }