Ir ao conteúdo

Posts recomendados

Postado

numa classe eu tenho o metodo read():

void read(string &txttext)    {        //esperar que o blnread seja false        //só depois vai para as intruçoes seguintes        while(blnread==true)        {            APIDoEvents();            if(IsWindowVisible(frmconsolewindow)==FALSE)                blnread=false;        }        blnread=true;        strreaded=&txttext;    }

como invoco o read():

string intnumber3;    cw.read(intnumber3);    img.Backcolor=RGB(255,0,0);    img.Backcolor=-1;    img.draw(cnsconsole,0,20);

como posso manter a espera no read, mas passar para a instruçao seguinte(sem falar do metodo read(), pois este esta á espera de 1 condiçao):

img.Backcolor=RGB(255,0,0);

???

Postado

eu nao tenho instalado o boost... devido tambem ao meu grande projecto ;)

eu ja pensei nas threads. mas posso perdir os endereços das variavels, por causa de chamar a thread mais que 1 vez :(

mas ve este codigo numa classe:

void APIDoEvents()    {        static bool blnAPIDoEvents=false;        if(blnAPIDoEvents==true)            return;        blnAPIDoEvents=true;        MSG msg;        BOOL result;        while (::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE ) )        {            result = ::GetMessage(&msg, NULL, 0, 0);            if (result == -1)            {                 // Handle errors/exit application, etc.            }            else            {                ::TranslateMessage(&msg);                ::DispatchMessage(&msg);            }        }        blnAPIDoEvents=false;    }    void read(string &txttext)    {        //pthread_create(&some_thread, nullptr, &console::multithreadproc,static_cast<void*>(&args));        while(blnread==true)        {            APIDoEvents();            if(IsWindowVisible(frmconsolewindow)==FALSE)                blnread=false;        }        blnread=true;        strreaded=&txttext;    }

agora chamo o read() 3 vezes:

cw.write(NewLine,"enter the 1st name: ");    string intnumber;    cw.read(intnumber);    cw.write("enter the 2nd name: ");    string intnumber2;    cw.read(intnumber2);    cw.write("enter the 3rd name: ");    string intnumber3;    cw.read(intnumber3);    img.Backcolor=RGB(255,0,0);    img.Backcolor=-1;    img.draw(cnsconsole,0,20);89

apos a segunda leitura de dados as intruçoes img sao executadas. é o que pretendo, mas porque só apos a segunda read()?(eu queria na primeira)

outra coisa: o write() tambem espera pela condiçao da variavel.. está super ;)

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...