Miscellany
public text v1 · immutablefor (i;i<frmMain->CheckListBoxTrovati->Items->Count && stopmail==false && !Terminated;i+=4)
{
while (frmMain->CheckListBoxTrovati->Checked[i]==false && i<frmMain->CheckListBoxTrovati->Items->Count-1 )
i++;
if (i == frmMain->CheckListBoxTrovati->Items->Count-1 )
break;
else
{
AssegnaUrl(i);
ThreadCercaEmail1 *CercaEmail1;
ThreadCercaEmail1 *CercaEmail2;
ThreadCercaEmail1 *CercaEmail3;
ThreadCercaEmail1 *CercaEmail4;
if (ListaUrl->Count > 0)
{
CercaEmail1 = new ThreadCercaEmail1(true,ListaUrl->Strings[0]);
if (maxThreads)
{
criticNumThreadEmail->Acquire();
try
{
numThreads++;
}
__finally
{
criticNumThreadEmail->Release();
}
}
CercaEmail1->Resume();
}
if (ListaUrl->Count > 1)
{
CercaEmail2 = new ThreadCercaEmail1(true,ListaUrl->Strings[1]);
if (maxThreads)
{
criticNumThreadEmail->Acquire();
try
{
numThreads++;
}
__finally
{
criticNumThreadEmail->Release();
}
}
CercaEmail2->Resume();
}
if (ListaUrl->Count > 2)
{
CercaEmail3 = new ThreadCercaEmail1(true,ListaUrl->Strings[2]);
if (maxThreads)
{
criticNumThreadEmail->Acquire();
try
{
numThreads++;
}
__finally
{
criticNumThreadEmail->Release();
}
}
CercaEmail3->Resume();
}
if (ListaUrl->Count > 3)
{
CercaEmail4 = new ThreadCercaEmail1(true,ListaUrl->Strings[3]);
if (maxThreads)
{
criticNumThreadEmail->Acquire();
try
{
numThreads++;
}
__finally
{
criticNumThreadEmail->Release();
}
}
CercaEmail4->Resume();
}
//CercaEmail1->WaitFor();
Application->ProcessMessages();
if (maxThreads && numThreads > maxThreads)
{
if (ListaUrl->Count > 0)
CercaEmail1->WaitFor();
if (ListaUrl->Count > 1)
CercaEmail2->WaitFor();
if (ListaUrl->Count > 2)
CercaEmail3->WaitFor();
if (ListaUrl->Count > 3)
CercaEmail4->WaitFor();
}
}
}
if (stopmail)
restartEmail=i;
while (!Terminated && stopmail==false && numSiti<totSiti)
{
Application->ProcessMessages();
::Sleep(2000);
}