Einfachster Weg, um ein Feuer zu machen und die Methode in C # zu vergessen?

Ich habe in WCF gesehen, dass sie das haben[OperationContract(IsOneWay = true)] Attribut. Aber WCF scheint langsam und schwer zu sein, nur um eine blockierungsfreie Funktion zu erstellen. Im Idealfall würde es so etwas wie eine nicht blockierende statische Lücke gebenMethodFoo(){}, aber ich glaube nicht, dass es das gibt.

Was ist der schnellste Weg, um einen nicht blockierenden Methodenaufruf in C # zu erstellen?

Z.B.

<code>class Foo
{
    static void Main()
    {
        FireAway(); //No callback, just go away
        Console.WriteLine("Happens immediately");
    }

    static void FireAway()
    {
        System.Threading.Thread.Sleep(5000);
        Console.WriteLine("5 seconds later");
    }
}
</code>

NB: Jeder, der dies liest, sollte darüber nachdenken, ob die Methode tatsächlich abgeschlossen werden soll. (Siehe Antwort 2 oben) Wenn die Methode beendet werden muss, müssen Sie an einigen Stellen, z. B. in einer ASP.NET-Anwendung, etwas tun, um den Thread zu blockieren und am Leben zu erhalten. Andernfalls könnte dies zu "Feuer vergessen, aber nie tatsächlich ausführen" führen. In diesem Fall wäre es natürlich einfacher, überhaupt keinen Code zu schreiben. (Eine gute Beschreibung, wie dies in ASP.NET funktioniert)

Antworten auf die Frage(9)

Ihre Antwort auf die Frage