Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [C#] Remoting + Eventi

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    6

    [C#] Remoting + Eventi

    Ciao a tutti

    sto scrivendo una piccola chat per imparare a gestire gli eventi remoti...
    il funzionamento è banale: il server pubblica una classe che riceve i messaggi e solleva l'evento OnMessage, i vari client collegati gestiscono l'evento aggiungendo il messaggio ad una TextBox.
    Ecco il problema: nel momento in cui richiamo il metodo che modifica la TextBox il client si blocca completamente (ho notato che questo blocco però si verifica solo nel momento in cui vado a modificare un qualsiasi componente della form, se eseguo operazioni diverse come ad esempio visualizzare una messagebox tutto funziona senza problemi)

    Sapreste darmi una mano ???

    Vi allego i sorgenti per maggiore chiarezza...
    Sorgenti
    [SmØke]³

  2. #2
    Non ho guardato il codice, però secondo me è un problema di thread.
    Dovresti usare un thread diverso per la connessione e usare i delegati quando necessario per modificare componenti del form.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    6
    In effetti si, sono riuscito a risolvere dopo aver passato la mattinata in internet a cercare esempi di codice...

    il problema stava appunto nel metodo che aggiungeva le nuove righe alla TextBox:


    codice:
    private void AddLine(string line)
            {
                if (chatText.InvokeRequired)
                {
                    OnMessageEventHandler d = new OnMessageEventHandler(AddLine);
                    this.Invoke(d, new object[] { line });
                }
                else
                {
                    chatText.Text += line + Environment.NewLine;
                    chatText.SelectionStart = chatText.Text.Length;
                    chatText.ScrollToCaret();
                }
            }
    mi è bastato sostituire this.Invoke con this.BeginInvoke

    ora funziona tutto... anche se nn mi è chiara la differenza tra le due istruzioni... :master:
    se qualcuno potesse illuminarmi glie ne sarei grato


    grazie
    [SmØke]³

  4. #4

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 © 2026 vBulletin Solutions, Inc. All rights reserved.