none
threads problemas RRS feed

  • Pergunta

  • ola!

    estou há horas procurando uma solução... preciso fazer com que ao clickar em um botao chamado iniciar no meu form, inicie um carregamento de progressBar e mudança de cores de 3 pictureBox ao mesmo tempo... estou tentanto implementar Threads para isso.. mas nao esta funcioando.. por diversar vezes ocorre o erro C3867

    error C3867: 'Simu001::Simples::verde': function call missing argument list; use '&Simu001::Simples::verde' to create a pointer to member

    error C3867: 'Simu001::Simples::amarelo': function call missing argument list; use '&Simu001::Simples::verde' to create a pointer to member

    error C3867: 'Simu001::Simples::vermelho': function call missing argument list; use '&Simu001::Simples::verde' to create a pointer to member

    a seguir um trecho do codigo:

    System::Void verde(void* pParams)
    		{
    			pb3->BackColor = System::Drawing::Color::Gray;
    		}
    		System::Void vermelho(void* pParams)
    		{
    			pb1->BackColor = System::Drawing::Color::Gray;
    		}
    		System::Void amarelo(void* pParams)
    		{
    			pb2->BackColor = System::Drawing::Color::Gray;
    		}
    
    #pragma endregion
    	private: System::Void btnIniciar_Click(System::Object^ sender, System::EventArgs^ e) {
    				
    				 int i = 1;
    				 int pid;
    				 Fila fila;
    				 inicializa(fila);
    				 while(i < 4)
    					{
    						insere(fila,i);
    						i++;
    					}
    				i = 0;
    				while(i < 3)
    				 {
    					pid = retira(fila);	
    					executar(pid);
    					if(pid == 1)
    					{
    						_beginthread(verde a, 0, NULL);
    					}
    					 if(pid == 2)
    					 {
    						_beginthread(amarelo v, 0, NULL);
    					 }
    					 if(pid == 3)
    					 {
    						_beginthread(vermelho , 0, NULL);
    					 }
    
    					i++;
    				 }
    
    			 }
    preciso que as trocas de cores sejam feitas ao mesmo tempo que o progressbar termina de encher..  o codigo abaixo é um dos pictureBox, tem o pb1 e pb3 também.

    pb2->BackColor = System::Drawing::Color::Gray;
    sábado, 15 de maio de 2010 04:58

Todas as Respostas

  • O primeiro argumento de beginthread(..) precisa ser uma função de escopo global ou uma função-membro estática de uma classe.

    Abraços, cox

     


    cox
    domingo, 16 de maio de 2010 02:48