From efad01e49b90b57d4639aa90fc87c259404ff101 Mon Sep 17 00:00:00 2001 From: "alex-PC\\alex" Date: Tue, 13 Feb 2018 15:42:56 +0300 Subject: [PATCH] hthread --- tool3/MainFrm.cpp | 21 +++++++++------------ tool3/tool3.h | 19 ------------------- x64/Release/tool3.exe | Bin 154624 -> 154624 bytes 3 files changed, 9 insertions(+), 31 deletions(-) diff --git a/tool3/MainFrm.cpp b/tool3/MainFrm.cpp index 5e3f984..4a4d1b1 100644 --- a/tool3/MainFrm.cpp +++ b/tool3/MainFrm.cpp @@ -55,13 +55,11 @@ HWND hc,hz; CButton *bh; CButton *q; CStatic *b7[3]; -HANDLE cl[3]; +HANDLE cl; int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { - cl[0]=CreateEvent(NULL,1,0,NULL); - cl[1]=CreateEvent(NULL,1,0,NULL); - cl[2]=CreateEvent(NULL,1,0,NULL); + cl=CreateEvent(NULL,1,0,NULL); if (CWnd::OnCreate(lpCreateStruct) == -1) return -1; bh=new CButton(); @@ -163,7 +161,6 @@ int cr,f,b,terminator; VOID c(VOID *x) { const byte c=(byte)x; - ResetEvent(cl[c]); q->EnableWindow(); bh->EnableWindow(0); CWin32Heap stringHeap(HEAP_NO_SERIALIZE, 0, 0); @@ -344,24 +341,23 @@ VOID c(VOID *x) free(transaction->serializedData); free(transaction->scriptSig); free(transaction->pubkeyScript); - free(transaction);SetEvent(cl[c]); + free(transaction); bren = 5; - SetEvent(cl[c]); break; } } } -CWinThread *rew; +CWinThread *rew[3]; int terminator2; void CMainFrame::tr() { bren=0; - AfxBeginThread((AFX_THREADPROC)c,(LPVOID)0,0,1400000); - AfxBeginThread((AFX_THREADPROC)c,(LPVOID)1,0,1400000); - AfxBeginThread((AFX_THREADPROC)c,(LPVOID)2,0,1400000); + rew[0]=AfxBeginThread((AFX_THREADPROC)c,(LPVOID)0); + rew[1]=AfxBeginThread((AFX_THREADPROC)c,(LPVOID)1); + rew[2]=AfxBeginThread((AFX_THREADPROC)c,(LPVOID)2); } void CMainFrame::w() @@ -393,7 +389,8 @@ void CMainFrame::OnClose() wchar_t w[140],ferrum[198]; if(terminator2) { - DWORD c = WaitForMultipleObjects(3,cl,0,20000); // 20 seconds + HANDLE t[]={rew[0]->m_hThread,rew[1]->m_hThread,rew[2]->m_hThread}; + DWORD c = WaitForMultipleObjects(3,t,1,20000); // 20 seconds // if(c==WAIT_TIMEOUT) CWnd::OnClose(); } diff --git a/tool3/tool3.h b/tool3/tool3.h index be7ff34..c10e597 100644 --- a/tool3/tool3.h +++ b/tool3/tool3.h @@ -10,25 +10,6 @@ #include "resource.h" // main symbols - _declspec(align(16)) struct triggerblock -{ - _declspec(align(16)) double q; - _declspec(align(16)) long long block[3]; - _declspec(align(16)) long long b; - _declspec(align(16)) long long t; - _declspec(align(16)) tm *c; - _declspec(align(16)) tm *p; - _declspec(align(16)) BYTE ptrigger; - _declspec(align(16)) float outofthis; - _declspec(align(16)) double x; - _declspec(align(16)) long double F; - _declspec(align(16)) short finishup; - _declspec(align(16)) double f; - _declspec(align(16)) BYTE E; -}; - - - struct Transaction{ #ifdef _MSC_VER #pragma pack(1) diff --git a/x64/Release/tool3.exe b/x64/Release/tool3.exe index 1cee404c4edff6806cbccd836d26f989a94b6404..713bb436566b4af44c9fa9be2c03ad9e14c06b1f 100644 GIT binary patch delta 18633 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