为什么要等一个线程结束另一个线程才开始执行!!
程序如下!EntryData= new DateThread(true, 1, ADOChangeDataSet, ADOCheckQuery);
ExitData = new DateThread(true, 2, ADOChangeExitDataSet, ADOExitCheckQuery); EntryData->Resume();//??????????????????????????????
ExitData->Resume ();//??????????????????????????????
void __fastcall DateThread::Execute()
{
Query://Do();
//Synchronize(Do);
Do();
//Wait(100);
Sleep(100);
goto Query;}void __fastcall DateThread::Do()
{
while(!CheckCurrentDatabase(MainForm->EntryTableList[i]))//检查数据库是否有上传的数据 {
GetCurrentChangeData(MainForm->EntryTableList[i]);//有上传的数据 上传
Sleep(100);
}
}
如何能控制两个线程同时执行各干自己的事务不打扰呢??
加上 Synchronize(Do);
为啥还要等另一个事件完成下一个线程才开始!!
而不加 直接do 编译调试都没问题 ,运行的时候就会出现错误???
程序如下!EntryData= new DateThread(true, 1, ADOChangeDataSet, ADOCheckQuery);
ExitData = new DateThread(true, 2, ADOChangeExitDataSet, ADOExitCheckQuery); EntryData->Resume();//??????????????????????????????
ExitData->Resume ();//??????????????????????????????
void __fastcall DateThread::Execute()
{
Query://Do();
//Synchronize(Do);
Do();
//Wait(100);
Sleep(100);
goto Query;}void __fastcall DateThread::Do()
{
while(!CheckCurrentDatabase(MainForm->EntryTableList[i]))//检查数据库是否有上传的数据 {
GetCurrentChangeData(MainForm->EntryTableList[i]);//有上传的数据 上传
Sleep(100);
}
}
如何能控制两个线程同时执行各干自己的事务不打扰呢??
加上 Synchronize(Do);
为啥还要等另一个事件完成下一个线程才开始!!
而不加 直接do 编译调试都没问题 ,运行的时候就会出现错误???
不过既然发了,那我就来接分咯