movimentatori Assegnare il OnWorkBegin
, OnWork
, e OnWorkEnd
eventi TIdTCPConnection
oggetto della connessione. L'evento OnWorkBegin
ha un parametro AWorkCountMax
che fornisce il totale dei byte attesi trasferiti (se noto in anticipo). L'evento OnWork
ha un parametro AWorkCount
che fornisce un totale parziale di quanti byte sono stati effettivamente trasferiti dall'esecuzione dell'evento OnWorkBegin
.
Ogniqualvolta l'evento OnWork
viene generato, sottrarre il valore precedente AWorkCount
dal valore corrente AWorkCount
per stabilire quanti byte sono stati trasferiti tra i due eventi, e quindi dividere tale valore per la quantità di tempo trascorso tra i due eventi. Con quel valore finale, puoi calcolare b/sec, kb/sec, mb/sec, ecc. Se necessario.
A seconda di come esattamente si sta inviando/ricevendo i dati, potrebbe essere necessario chiamare manualmente i BeginWork()
e EndWork()
metodi di TIdTCPConnection
per ottenere i OnWork...
eventi per cominciare a sparare. La maggior parte dei metodi di lettura/scrittura di Indy non chiama internamente Begin/EndWork()
.
fonte
2011-12-28 02:13:54
Si prega di non inserire le informazioni tag nel titolo della tua domanda. Sconfigge lo scopo di avere tag in primo luogo e rende l'argomento delle domande più lungo e difficile da leggere. Inoltre, quando si utilizza qualcosa come Indy, dove ci sono grandi differenze tra le versioni, aiuta se si include quale versione dei componenti si sta utilizzando. Grazie. –