私は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");
}
}
注意:これを読んでいる人はみな、メソッドを実際に終了させたいかどうかを検討する必要があります。(#2のトップアンサーを参照)メソッドを終了する必要がある場合は、ASP.NETアプリケーションなどの一部の場所で、スレッドをブロックして存続させるために何かを行う必要があります。それ以外の場合、これは「fire-forget-but-never-actually-execute」につながる可能性があります。その場合、もちろん、コードをまったく記述しない方が簡単です。(これがASP.NETでどのように機能するかについての良い説明)