struct BackupFile
{
CString Resource;
CString Path;
CString Account;
CString Password;
CString Comment;
int Method;
int Security;
int Time;
int Hour;
int Monday;
int Tuesday;
int Wednesday;
int Thursday;
int Friday;
int Saturday;
int Sunday;
};
//上面的是传给线程的自定义结构体UINT FileBackupDlg::FileBakThread1(LPVOID param)//线程函数
{
BackupFile * file1=(BackupFile*) param;
SYSTEMTIME t;
GetLocalTime(&t);//获取本地时间
int day=t.wDay;
bool k=true;//用来记录当天有没有执行过
if(file1->Time==1)//time为0则是每天执行一次,为1则为星期几执行一次
{
while(m_stop01)
{
SYSTEMTIME t1;
GetLocalTime(&t1);
if(file1->Sunday==1&&t1.wDayOfWeek==0&&t1.wDay==day&&file1-our==t1.wHour&&t1.wMinute==00&&k)//判断是不是星期天执行;今天是不星期天,今天几号,几点,有没有执行过任务。如果有执行,刚K=false; {
k=false;
day=t.wDay;
}
if(file1->Monday==1&&t1.wDayOfWeek==0&&t1.wDay==day&&file1->Hour==t1.wHour&&t1.wMinute==00&&k)
{
k=false;
day=t.wDay;
}
if(file1->Tuesday==1&&t1.wDayOfWeek==0&&t1.wDay==day&&file1->Hour==t1.wHour&&t1.wMinute==00&&k)
{
k=false;
day=t.wDay;
}
if(file1->Wednesday==1&&t1.wDayOfWeek==0&&t1.wDay==day&&file1->Hour==t1.wHour&&t1.wMinute==00&&k)
{
k=false;
day=t.wDay;
}
if(file1->Thursday==1&&t1.wDayOfWeek==0&&t1.wDay==day&&file1->Hour==t1.wHour&&t1.wMinute==00&&k)
{
k=false;
day=t.wDay;
}
if(file1->Friday==1&&t1.wDayOfWeek==0&&t1.wDay==day&&file1->Hour==t1.wHour&&t1.wMinute==00&&k)
{
k=false;
day=t.wDay;
}
if(file1->Saturday==1&&t1.wDayOfWeek==0&&t1.wDay==day&&file1->Hour==t1.wHour&&t1.wMinute==00&&k)
{
k=false;
day=t.wDay;
}
Sleep(60000);
}
}
else
{
while(m_stop02) //
{
SYSTEMTIME t2;
GetLocalTime(&t2);
if(file1->Hour==t2.wHour&&t2.wMinute==0&&k&&day==t2.wDay) //满足四个条件才开始执行备份任务:定时时间;定时时间的第0分钟;定时时间(几点钟)内任务有没有执行过;当天有没有执行过
{
k=false;
day=t.wDay; //如果备份当天任务执行过,把当天时间做为标记
Sleep(60000);
}
}
}
return 0;
}
不执行这个线程就会占50%CPU,郁闷,大牛们来看看为什么
{
CString Resource;
CString Path;
CString Account;
CString Password;
CString Comment;
int Method;
int Security;
int Time;
int Hour;
int Monday;
int Tuesday;
int Wednesday;
int Thursday;
int Friday;
int Saturday;
int Sunday;
};
//上面的是传给线程的自定义结构体UINT FileBackupDlg::FileBakThread1(LPVOID param)//线程函数
{
BackupFile * file1=(BackupFile*) param;
SYSTEMTIME t;
GetLocalTime(&t);//获取本地时间
int day=t.wDay;
bool k=true;//用来记录当天有没有执行过
if(file1->Time==1)//time为0则是每天执行一次,为1则为星期几执行一次
{
while(m_stop01)
{
SYSTEMTIME t1;
GetLocalTime(&t1);
if(file1->Sunday==1&&t1.wDayOfWeek==0&&t1.wDay==day&&file1-our==t1.wHour&&t1.wMinute==00&&k)//判断是不是星期天执行;今天是不星期天,今天几号,几点,有没有执行过任务。如果有执行,刚K=false; {
k=false;
day=t.wDay;
}
if(file1->Monday==1&&t1.wDayOfWeek==0&&t1.wDay==day&&file1->Hour==t1.wHour&&t1.wMinute==00&&k)
{
k=false;
day=t.wDay;
}
if(file1->Tuesday==1&&t1.wDayOfWeek==0&&t1.wDay==day&&file1->Hour==t1.wHour&&t1.wMinute==00&&k)
{
k=false;
day=t.wDay;
}
if(file1->Wednesday==1&&t1.wDayOfWeek==0&&t1.wDay==day&&file1->Hour==t1.wHour&&t1.wMinute==00&&k)
{
k=false;
day=t.wDay;
}
if(file1->Thursday==1&&t1.wDayOfWeek==0&&t1.wDay==day&&file1->Hour==t1.wHour&&t1.wMinute==00&&k)
{
k=false;
day=t.wDay;
}
if(file1->Friday==1&&t1.wDayOfWeek==0&&t1.wDay==day&&file1->Hour==t1.wHour&&t1.wMinute==00&&k)
{
k=false;
day=t.wDay;
}
if(file1->Saturday==1&&t1.wDayOfWeek==0&&t1.wDay==day&&file1->Hour==t1.wHour&&t1.wMinute==00&&k)
{
k=false;
day=t.wDay;
}
Sleep(60000);
}
}
else
{
while(m_stop02) //
{
SYSTEMTIME t2;
GetLocalTime(&t2);
if(file1->Hour==t2.wHour&&t2.wMinute==0&&k&&day==t2.wDay) //满足四个条件才开始执行备份任务:定时时间;定时时间的第0分钟;定时时间(几点钟)内任务有没有执行过;当天有没有执行过
{
k=false;
day=t.wDay; //如果备份当天任务执行过,把当天时间做为标记
Sleep(60000);
}
}
}
return 0;
}
不执行这个线程就会占50%CPU,郁闷,大牛们来看看为什么
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货