自己写的程序在别人电脑上运行会卡 自己写了个小程序,有个死循环我放到后台去处理,在我自己电脑上运行都好好的 ,拿到别人电脑上去运行,界面就卡了。什么情况 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 DWORD WINAPI CCOMDlg::htest(LPVOID lpParameter) { // TODO: Add your control notification handler code here int i=((HTEST*)lpParameter)->i; HWND hwnd=((HTEST*)lpParameter)->hwnd; while(1) { ::SendMessage(hwnd,WM_STEPT,NULL,NULL); Sleep(4000); ::SendMessage(hwnd,WM_STEPW,NULL,NULL); Sleep(2500); } return 0; } 两台机器的操作系统一样吗,我曾经有程序在windows SERVER系统中跑就很卡 在线程中sleep,主界面死?还没遇到过,可以用peekmessage来让出cpu时间。 循环里加发送消息,可能会很面,改成普通的调用函数的形式会快些。还用循环里的Sleep在这里是干什么用的? 还是看你处理这两个消息WM_STEPW,WM_STEPT的地方的 代码吧 这个是你的ui线程吗?Sleep弄得你一卡一卡 你每次循环都sleep 4秒,无论在哪都卡才对 ui线程里sleep都会卡,界面假死。 Sleep(2500); 这样用.一定会有问题的.#include "ENtime.h"//每一帖起始时间void ENtime::countGetTickCount(){ IniFrameDelay=GetTickCount();//获得豪秒// cout<<"IniFrameDelay:"<<IniFrameDelay<<endl;}//计算每一帖帖速void ENtime::countFrameSpeed(){ FrameDelay=GetTickCount() - IniFrameDelay;//每一帖的帖速// cout<<"FrameDelay:"<<FrameDelay<<" SetSpeedValue:"<<SetSpeedValue<<endl; }//控制相对帖速int ENtime::setFrameSpeed(float speed){ SetSpeedValue=speed;//设置帖速 return 1;}//获取相对帖速值int ENtime::getFrameSpeed(){ return SetSpeedValue;}//设置sleepbool ENtime::FrameSleep(){ FrameDelay=GetTickCount() - IniFrameDelay;//每一帖的帖速 if(FrameDelay < SetSpeedValue) { ::Sleep(SetSpeedValue - FrameDelay);//主动放弃CPU使用时间 // ::Sleep(SetSpeedValue);//主动放弃CPU使用时间 return 0;//帖速不合符要求 } return 1;//帖速合符要求} 这么简单,但就是解决不了 MessageBox 如何得到文档类的指针 sendmessage给派生自cwnd类的类发送消息问题 可能有二份工作,该怎样选择呢? 汗,exe里安装和卸载HOOK,可是DLL里CallNextHook时没有hHook啊,怎么传简单些? 界面显示时出错只有标题栏和最大最小关闭按钮 请问如何用程序定时重起电脑? utf8转char..知道的进。。贴代码。。(记得要有注释) ADO相关! 获取应用程序版本信息得乱码 MFC中新建类的问题 通过资源创建的控件,如何响应创建消息
{
// TODO: Add your control notification handler code here
int i=((HTEST*)lpParameter)->i;
HWND hwnd=((HTEST*)lpParameter)->hwnd;
while(1)
{
::SendMessage(hwnd,WM_STEPT,NULL,NULL); Sleep(4000); ::SendMessage(hwnd,WM_STEPW,NULL,NULL);
Sleep(2500); }
return 0;
}
还用循环里的Sleep在这里是干什么用的?
#include "ENtime.h"//每一帖起始时间
void ENtime::countGetTickCount()
{
IniFrameDelay=GetTickCount();//获得豪秒
// cout<<"IniFrameDelay:"<<IniFrameDelay<<endl;
}//计算每一帖帖速
void ENtime::countFrameSpeed()
{
FrameDelay=GetTickCount() - IniFrameDelay;//每一帖的帖速
// cout<<"FrameDelay:"<<FrameDelay<<" SetSpeedValue:"<<SetSpeedValue<<endl;
}
//控制相对帖速
int ENtime::setFrameSpeed(float speed)
{
SetSpeedValue=speed;//设置帖速
return 1;
}//获取相对帖速值
int ENtime::getFrameSpeed()
{
return SetSpeedValue;
}
//设置sleep
bool ENtime::FrameSleep()
{
FrameDelay=GetTickCount() - IniFrameDelay;//每一帖的帖速
if(FrameDelay < SetSpeedValue)
{
::Sleep(SetSpeedValue - FrameDelay);//主动放弃CPU使用时间
// ::Sleep(SetSpeedValue);//主动放弃CPU使用时间
return 0;//帖速不合符要求
}
return 1;//帖速合符要求
}