Ciao a tutti quelli che ancora non sono in vacanza e mi leggeranno...

Ho un problema: sto facendo un programma che registra l'audio in ingresso (con DirectX9) in sincrono con determinate azioni e registra su un xml il millisecondo in cui è avvenuta l'azione.
Ho tentato di sincronizzarlo con il timer di windows, ma non è stato possibile...

Al che ho pensato di risolvere memorizzando il millisecondo di registrazione del file audio, l'ho testato con valori fissi, copiando le funzioni di registrazione nello stesso form, e funziona.
Purtroppo però le funzioni di registrazione devono essere disponibili anche da altri form e quindi sono in un form apposito [opzioniAudioWindow] che contiene tutte le variabili di registrazione (frequenza, canali, ecc)
Per richiamare la variabile necessaria alla memorizzazione ho quindi creato una Proprietà a cui poter accedere da tutti i form che ne abbiano bisogno.

Purtroppo però non rieco a richiamare la variabile...
Ecco il codice:

codice:
Public Class opzioniAudioWindow
   'funzioni di registrazione varie...

    Private countValue As Integer
    Public Property conta() As Integer
        Get
            Return countValue
        End Get
        Set(ByVal value As Integer)
            If value <> 0 Then
                countValue = value / freq / shBytesPerSample * 1000
            Else
                countValue = 0
            End If
       End Set
    End Property


    Public Sub saveRecord()
        Dim CaptureData As Byte() = Nothing
        Dim ReadPos As Integer
        Dim CapturePos As Integer
        Dim LockSize As Integer

        cBuff.GetCurrentPosition(CapturePos, ReadPos)
        LockSize = ReadPos - NextCaptureOffset
        If LockSize < 0 Then
            LockSize += captureBufferSize
        End If

        LockSize -= LockSize Mod notifySize

        If 0 = LockSize Then
            Return
        End If
        ' legge i dati
        CaptureData = CType(cBuff.Read(NextCaptureOffset, GetType(Byte), LockFlag.None, LockSize), Byte())
        SampleCount += CaptureData.Length

        'scrivi sul file
        Writer.Write(CaptureData, 0, CaptureData.Length)
        NextCaptureOffset += CaptureData.Length
        NextCaptureOffset = NextCaptureOffset Mod captureBufferSize

        conta() = SampleCount

    End Sub
End Class
codice:
Public Class form1
    Sub salvaRegistrazione()

        Dim mc As New opzioniAudioWindow()

        CurrentSlideSecondCount = mc.conta()

        'altre istruzioni...

    End Sub
End Class
Purtroppo il codice mi restituisce sempre 0...

Ho provato anche a richiamare la variabile con una funzione che restituisce conta(), ma mi prende solo il primo valore, coma se ai cicli successivi SampleCount diventasse 0...
qualcuno sa dirmi perchè?...

Già che ci sono, volevo chiedere anche un consiglio: il file xml conviene scriverlo volta per volta (ad ogni azione aggiungo un nodo), memorizzarlo in uno stream e scriverlo alla fine o, come sto facendo ora, memorizzarlo in una stringa e scriverlo alla fine?

Grazie a chi mi aiuterà!