最佳答案
我看到在周转基金,他们有 [OperationContract(IsOneWay = true)]
属性。但是 WCF 看起来有点缓慢和沉重,仅仅是为了创建一个非阻塞函数。理想情况下,会有类似静态 void 非阻塞 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 : 每个读这篇文章的人都应该考虑一下他们是否真的希望这个方法能够完成。如果方法必须完成,那么在某些地方,比如 ASP.NET 应用程序,您需要做一些事情来阻塞线程并保持线程活动。否则,这可能导致“发射-忘记-但从来没有实际执行”,在这种情况下,当然,更简单的做法是根本不编写代码。(很好地描述了它在 ASP.NET 中是如何工作的)