Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente bannato L'avatar di Nilox
    Registrato dal
    Jul 2010
    Messaggi
    35

    [C#] Thread che richiama funzione boolean

    buona sera vi espongo il problema, avrei una funzione boolean che vorrei richiamare da un thread il problema è che mi restituisce l'errore "A method or delegate 'bool Mioprogramma.Classe.EseuireControllo()' return type does not match delegate 'void System.threading.threadstart()' retun type (cs0407)" vi copio il codice come l'ho fatto io spero mi possiate aiutare grazie:

    codice:
    public  Void ThreadDaEseguire()
        {
            thread th = new Thread(new Threadstart(EseguireControllo)); <--qui mi ritorna l'errore
            th.start();
        }
    
    private Boolean EseguireControllo()
        {
           Boolean a = false;
           codice vario...
           return a;
        }

  2. #2
    La funzione di avvio di un thread può essere solo
    codice:
    void TuaFunzione()
    {
        // ...
    }
    (nel qual caso corrisponde al delegate ThreadStart)
    oppure
    codice:
    void TuaFunzione(Object Parametro)
    {
        // ...
    }
    (nel qual caso corrisponde al delegate ParametrizedThreadStart).
    Non sono ammesse altre firme.
    Se vuoi restituire qualcosa, puoi farlo usando il parametro di tipo Object, che, come tutto in .NET, viene passato per riferimento.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente bannato L'avatar di Nilox
    Registrato dal
    Jul 2010
    Messaggi
    35
    ti ringrazio per la risposta appena possibile provo con la tua soluzione sperando di riuscire nel mio lavoro

  4. #4
    Utente bannato L'avatar di Nilox
    Registrato dal
    Jul 2010
    Messaggi
    35
    purtroppo a quanto pare è quella funzione boolena che non gli piace perché ho provato come dici tu ma continua ad impuntasi restituendomi come errore "bool MyProject.MiaClasse.FunzioneBooleana() presenta il tipo restituito errato"...spero qualcuno sappia illuminarmi

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Esempio banalissimo:

    codice:
     private void Form1_Load(object sender, EventArgs e)
            {
                int[] ret = {1,2};
                System.Threading.Thread s = new System.Threading.Thread(miasub);
                s.Start(ret);
                s.Join();
    /Verifico che la matrice sia stata modificata
                int i = ret[0];
            }
    
           
           
    
            public void miasub(object ret)
            {
                int[] s = (int[])ret;
                s[0] = 9;
                s[1] = 6;
            }
    Sbagliare è umano, perseverare è diabolico.

  6. #6
    Originariamente inviato da Nilox
    purtroppo a quanto pare è quella funzione boolena che non gli piace perché ho provato come dici tu ma continua ad impuntasi restituendomi come errore "bool MyProject.MiaClasse.FunzioneBooleana() presenta il tipo restituito errato"...spero qualcuno sappia illuminarmi
    Cosa non ti è chiaro di "non sono ammesse altre firme"? La funzione di inizio di un thread può essere solo:
    codice:
    void TuaFunzione()
    void TuaFunzione(object Parametro)
    Nessun'altra firma è ammessa.

    Per restituire valori tramite la seconda possibilità, vedi la risposta di Pirelli72.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente bannato L'avatar di Nilox
    Registrato dal
    Jul 2010
    Messaggi
    35
    vi ringrazio per la risposta
    @MItaly scusa ma avevo interpretato la tua prima risposta diversamente dal senso che avevi dato tu

  8. #8
    Originariamente inviato da Nilox
    @MItaly scusa ma avevo interpretato la tua prima risposta diversamente dal senso che avevi dato tu
    No problem; ciao!
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.