Здравствуйте, ssm, Вы писали:
ssm>да погоди, не надо тока пока кричать, я думаю, что проблема в каком-то из методов
ssm>mtserverClass->Send(...);
Проверено когда отключал очередь вообще. Т.е. recv и сразу send. Здесь все нормально.
ssm>mtserverClass->OnReceive(...);
просто заглушка в ней ничего нет, сделана для интерфйса с наследующим классом.
ssm>safe_delete(...);
макрос if(...) {detete ...; ...=NULL}
... эта штука ядро не грузит вообще (по крайней мере в диспетчере задач визуально не заметно, проц в целом — да на все 100%).
void CPULoadThread()
{
int *i;
while(1)
{
i = new int[10240];
memset(i, 0, 10240);
for(int j=0; j < 10240; j++)
{
i[j] = rand();
}
int summ = 0;
for(j = 0; j < 10240; j++)
summ+=i[j];
double mul = 0.0;
for(j = 1024; j > 0; j--)
mul*=double(i[j]);
int rndsumm = 0;
j=10240;
while(j--)
{
rndsumm+=i[rand()%10240];
}
delete[] i;
}
}
и гденибудь по кнопочке сделай так...
HANDLE m_cpu_load_thead = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)CPULoadThread, NULL, 0, NULL);
CloseHandle(m_cpu_load_thead);
ssm>бери на вооружение метод научного коментирования и сообщи результаты.
... остались операции по работе с очередью.