2009-05-27 6 views
-1

Ich weiß, dass es möglich ist, implizit asynchrone Interaktion zu schaffen, mit:Beispiele für asynchrone Interaktion in C# .Net?

  • Asynchronous Delegierten
  • Asynchrone Rückrufe

Ich frage mich, was andere Methoden .Net für asynchrone Interaktion unterstützt?

Hilfe sehr geschätzt.

Grüße

EDIT:

Vielleicht habe ich mich nicht richtig erklären .... I UNDER Threading und CONCURRENCY PERFEKT, wollte ich einfach eine Liste der potenziellen Möglichkeiten asychronous Interaktion in .Net implementieren neben asynchronen Delegaten oder Callbacks.

+0

Ich habe einige schlecht formulierte Fragen hier gesehen, aber das dauert den Keks! –

+0

Wie ist das überhaupt komplex? Wenn ich die Frage stelle, geben Sie mir eine Liste der Möglichkeiten, Daten auf einem tragbaren Medium als eine CD zu speichern, würden Sie antworten mit: Ein USB-Stick, eine Diskette usw. Alles was ich wollte war eine Liste der unterstützten Methoden für asynchrone Interaktion in .Net ....... nicht Raketenwissenschaft! – Goober

Antwort

0

(Ich bin nicht sicher, ob ich völlig verstehen, was Sie in Ihrer Frage darauf abzielen, aber ich werde es geben ein Schuss)

Für die asynchrone Code-Ausführung in Winforms-Anwendungen ist die BackgroundWorker Komponente eher convinient. Ich benutze auch häufig die ThreadPool.QueueUserWorkItem Methode als eine einfache Möglichkeit, eine Methode auf einem eigenen Thread zu spawnen.

+0

Vielen Dank – Goober

0

Dies könnte außerhalb sein, was Sie fragen, aber es kann auch für Message Queuing unterstützt wird.

+0

und ein Beispiel dafür wäre? – Svish

+0

z.B. http://msdn.microsoft.com/en-us/library/ms978425.aspx – ilivewithian

0

Asynchrone Operationen in .NET gestartet durch Aufruf einer Methode, die BeginSomething benannt ist, wo Something wahrscheinlich Invoke, Write, Send oder ein anderer Betrieb sein wird.

Beispiel:

http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.beginsend.aspx

Sie passieren einen Delegierten der eigenen, der ausgeführt wird, wenn der Vorgang abgeschlossen ist. Sie können dann das Ergebnis der Operation erhalten, indem Sie eine entsprechende Methode EndSomething aufrufen.

Beispiel:

http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.endsend(VS.80).aspx

Das Muster ist in der Regel gleich, unabhängig von der Operation durchgeführt wird. Es gibt Kuriositäten, bei denen die EndSomething-Methode stattdessen etwas Inkonsistentes genannt wird.

Weitere Beispiele:

0

könnten Sie Expression Strähne oder andere Monaden (noch nicht erlauben, zu verknüpfen, aber der Begriff kann auch Wiki und Calvin hat gefunden werden, um eine große Blog zum Thema) stützen

im Grunde alles, was Sie eigene Verantwortung Codierung machen kann kann für asynchrone Implementierungen verwendet werden.

Sie könnten auch googeln auf Fortsetzung vorbei. Ein Codierungsstil, bei dem alle Methoden keine Werte zurückgeben (void), aber einen Parameter (einen Delegaten von Art) annehmen, der angibt, was ausgeführt werden soll.