私はWCFでそれらが[OperationContract(IsOneWay = true)]
属性を持っているのを見ました。しかし、WCF は、ノンブロッキング関数を作成するためだけに、遅くて重いようです。理想的には static void nonblocking のようなものがあるでしょうがMethodFoo(){}
、それは存在しないと思います。
C#でノンブロッキングメソッド呼び出しを作成する最も簡単な方法は何ですか?
例えば
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");
}
}
NB : これを読んでいる人は、メソッドを実際に終了させたいかどうかを考えるべきです。(#2 の一番上の回答を参照) メソッドを終了する必要がある場合、ASP.NET アプリケーションなどのいくつかの場所では、スレッドをブロックして存続させるために何かを行う必要があります。そうしないと、「忘れたが実際には実行されない」という事態に陥る可能性があります。その場合、もちろん、コードをまったく記述しない方が簡単です。(これが ASP.NET でどのように機能するかについての適切な説明)