Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,550

    [C#] Usare delegati per oggetto e non per property

    come da titolo
    ho diversi thread che agiscono su un controllo
    essendoche devo gestire diverse property/metodo, per ogni property sto usando dei delegate, quindi mi chiedo se sia possibile usare un delegate per l'oggetto combobox (per esempio) e fare prima invece che scrivere delegate per ogni property/metodo che mi serve

    qui esempio di property
    codice:
    privatedelegatevoidAddListBoxItemDelegate(object[] item);
    privatevoidAggiungiBBItem(ComboBox CBB,object item)
    {
        if(CBB.InvokeRequired)
        {
            object[] args ={ CBB, item };
            CBB.Invoke(newAddListBoxItemDelegate(AddCBBItem), args);
        }
        else
        {
            CBB.Items.Add(item);
        }}
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Direi che la spiegazione del problema è chiara quanto il codice mostrato: zero.

    Potresti spiegare meglio qual è lo scenario e corregge la parte di codice mostrato (che appare senza spazi)?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,550
    ho 2 thread che vanno a modificare il testo di una combobox
    quindi ho dovuto impostare un delegato per la property text per farvi accedere ai thread visto che ogni thread non può avere concorrenza
    essendo che oltre alla property text() dovrei gestire altre property, mi chiedo se per ogni property devo gestire come delegato oppure posso crearmi un oggetto delegato di combobox? cosi che mi gesstisco tutto?
    il codice sopra è solo un esempio
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Quote Originariamente inviata da Kahm Visualizza il messaggio
    ho 2 thread che vanno a modificare il testo di una combobox
    quindi ho dovuto impostare un delegato per la property text per farvi accedere ai thread visto che ogni thread non può avere concorrenza
    essendo che oltre alla property text() dovrei gestire altre property, mi chiedo se per ogni property devo gestire come delegato oppure posso crearmi un oggetto delegato di combobox? cosi che mi gesstisco tutto?
    il codice sopra è solo un esempio
    Quello che a me pare molto strano e insolito, e poco efficace, è la presenza di più thread che vanno a modificare più di una proprietà su uno stesso controllo visuale, una operazione che dovrebbe essere eseguita tutt'al più dal thread principale e comunque - ripeto - insolita.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,550
    Quote Originariamente inviata da alka Visualizza il messaggio
    Quello che a me pare molto strano e insolito, e poco efficace, è la presenza di più thread che vanno a modificare più di una proprietà su uno stesso controllo visuale, una operazione che dovrebbe essere eseguita tutt'al più dal thread principale e comunque - ripeto - insolita.
    eh per ora è solo uno ma si prevede di aggiungerli, sto lottando per questo, ma in previsione devo gestirlo
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  6. #6
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,255
    Attento che (se ho capito cosa stai facendo) usi un delegato non per il problema della concorrenza, ma per il problema che sei su thread differenti.
    Il problema della concorrenza con quel codice rimane secondo me, nella funzione dovresti usare un lock(con i problemi che comporta).
    "Magari" cambierei anche la struttura(sembra un tipico caso di Observer).

    Per il tuo problema specifico prova a guardare la "reflection".

  7. #7
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,550
    Quote Originariamente inviata da URANIO Visualizza il messaggio
    Attento che (se ho capito cosa stai facendo) usi un delegato non per il problema della concorrenza, ma per il problema che sei su thread differenti.
    Il problema della concorrenza con quel codice rimane secondo me, nella funzione dovresti usare un lock(con i problemi che comporta).
    "Magari" cambierei anche la struttura(sembra un tipico caso di Observer).

    Per il tuo problema specifico prova a guardare la "reflection".
    grazie per tua indicazione
    nel lo specifico per mia domanda riguardo uno eventuale thread singolo, sapresti dire se è possibile fare un delegate con oggetto invece di tanti delegate per ogni property?
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  8. #8
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,255
    Potresti fare una funzione a cui passi il nome dell'oggetto, proprietà e valore, e richiamarla attraverso un Delegato.
    Qua hai un esempio.
    https://msdn.microsoft.com/it-it/lib...v=vs.110).aspx

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