Domanda

Mi sto chiedendo perché ho creato un servizio di Windows e sembra che sotto carico pesante (che nel mio caso quando le finestre si sta avviando) i dati all'interno del XML non viene caricato prima di fare manualmente roba con esso in il mio caso sta controllando quanti fila sono in un DataTable specifica all'interno di quel set di dati.

Dataset ottenuto uno schema.

Codice Speudo sarebbe:

dataset.readxml("c:\myfile.xml")
if dataset.datatable1.rowcount is 1 
    do something
else
    do something else

Nel mio caso, si raggiunge il caso altrimenti anche se c'è una riga.

Se inizio il servizio manualmente dopo, perché il caso altrimenti fermarlo, tutto funzionerà bene.


Se è sincrono, cosa potrebbe causare tale comportamento?

È stato utile?

Soluzione

metodi asincroni nelle classi .NET segue il modello del BeginSomeAction () / EndSomeAction (), quindi la mia ipotesi è che ReadXml () è sincrono. Secondo il documentazione non c'è BeginReadXml per DataSet.

EDIT: E 'sufficiente sfogliare l'attuazione indica una lettura sincrona, quindi a meno che ci sia qualcosa che ho perso che supporta la mia ipotesi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top