gpt4 book ai didi

c# - 在 C# 中实现即发即弃方法的最简单方法?

转载 作者:IT王子 更新时间:2023-10-29 03:32:52 24 4
gpt4 key购买 nike

我在 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”,在这种情况下,当然,根本不编写代码会更简单。 ( A good description of how this works in ASP.NET )

最佳答案

ThreadPool.QueueUserWorkItem(o => FireAway());

(五年后...)

Task.Run(() => FireAway());

正如 luisperezphd 指出的那样.

关于c# - 在 C# 中实现即发即弃方法的最简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1018610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com