sharpGG - odbieranie wiadomości

sharpGG - odbieranie wiadomości
0

Witam, c# zajmuje sie od niedawna, a natknalem sie na sharpGG i postanowilem na tym komponecie sie troche rozwinąć w tej kwestii;] Piszę sobie prosty komunikator ale natknalem sie na problem.
Jak wygląda obsługa odbioru wiadomości w shGG ?
Mógłbym prosić o przykładowy króciutki kod ilustrujący jak korzystać ze zdarzenia GGMessageReceive?

Deti
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 9 lat
0
Kopiuj
sharpGG.GGMessageReceive += new sHGG.GenericEventHandler<sHGG.MessageReceiveEventArgs>(sharpGG_GGMessageReceive);


....

 void sharpGG_GGMessageReceive(object sender, sHGG.MessageReceiveEventArgs args)
{
    richTextBox1.Text += "[" + args.Number.ToString() + "] " + args.Message;
}

0

dzieki wielkie ;)
btw, gratuluje komponentu, świetna robota :)

WO
  • Rejestracja:ponad 15 lat
  • Ostatnio:ponad 15 lat
0

a mi wypisuje :

Nieprawidłowa operacja między wątkami: do formantu 'richTextBox1' uzyskiwany jest dostęp z wątku innego niż wątek, w którym został utworzony.

Jestem początkujący, co mam zrobić??

SI
  • Rejestracja:prawie 16 lat
  • Ostatnio:około 3 lata
0
wojtashekzg napisał(a)

a mi wypisuje :

Nieprawidłowa operacja między wątkami: do formantu 'richTextBox1' uzyskiwany jest dostęp z wątku innego niż wątek, w którym został utworzony.

Jestem początkujący, co mam zrobić??

Poczytać o wątkach w necie - jedyna rada...

Deti
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 9 lat
0

Nieprawidłowa operacja między wątkami: do formantu 'richTextBox1' uzyskiwany jest dostęp z wątku innego niż wątek, w którym został utworzony.

Mała wada SHGG . Jeśli zbudujesz obiekt klasy SHGG po załadowaniu formy - nie będziesz miał tego błędu. Czyli .. nie twórz obiektu SHGG jako pole w formie - przed załadowaniem tej formy!

Windows.Forms ma swój własny system synchronizacji wątków - nazywa to się "Message Pump". Jednak wykrycie tego następuje przy konstruktorze SHGG. Jeśli zatem zbudujesz SHGG przed załadowaniem formy - nie będzie synchronizacji. :-/


WO
  • Rejestracja:ponad 15 lat
  • Ostatnio:ponad 15 lat
0

Nadal nie wiem jak to zrobić, mógłbyś może napisać przykładowy kod który usunie z mojego programu ten błąd? Dzieki z góry ;)

Deti
  • Rejestracja:ponad 22 lata
  • Ostatnio:ponad 9 lat
0

Będzie błąd:

Kopiuj
 public partial class Form1:Form {
        SHGG gg=new SHGG();

Nie będzie błędu:

Kopiuj
 public partial class Form1:Form {
        SHGG gg

    private void Form_Load(object sender,EventArgs e) {
      gg=new SHGG();
}

.. gdzie Form_Load to zdarzenie załadowania formy.


Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.