IAsyncResult

03/10/2007 - 15:30 von Brian Schmalisch | Report spam
Hallo,

ich arbeite mich ein bisschen in die Asynchronen Delegaten ein und bin dabei
auf ein Problem gestoßen. Ich erhalte beim folgenden Beispiel das Ergebnis
in der Callback-Funktion nicht ausgegeben. Was mache ich hier verkehrt?

Hier mal der Quelltext:
delegate long SummeDelegat(int von, int bis);
static void Main(string[] args)
{
SummeDelegat summeDelegat = Summe;
IAsyncResult iar = summeDelegat.BeginInvoke(
1, int.MaxValue, Callback, summeDelegat);
Console.WriteLine("Berechnung gestartet");
Console.WriteLine("weiter im Hauptprogramm");
//warten
bool done = false;
do
{
done = iar.AsyncWaitHandle.WaitOne(3000, false);
Console.WriteLine("weiter im Hauptprogramm");
}
while (!done);
Console.WriteLine("OK");
}

static long Summe(int von, int bis)
{
long summe = 0;
for (long i = von; i <= bis; i++)
summe += i;
return summe;
}

static void Callback(IAsyncResult iar)
{
SummeDelegat summeDelegate = (SummeDelegat)iar.AsyncState;
long summe = summeDelegate.EndInvoke(iar);
Console.WriteLine("Berechnung beendet: {0}", summe); <<<<<<<<- Bekomme ich
nicht ausgegeben
}
 

Lesen sie die antworten

#1 Markus Springweiler
04/10/2007 - 15:55 | Warnen spam
Brian,

Ich erhalte beim folgenden Beispiel das Ergebnis
in der Callback-Funktion nicht ausgegeben. Was mache ich hier verkehrt?



Welche Console-Ausgaben bekommst du denn, und wie lange làuft das Programm
mit der 2-Milliarden-Schleife?

/\/\arkus.

Ähnliche fragen