Самый простой способ выполнить метод «огонь и забудь» на С#?C#

Место общения программистов C#
Anonymous
Самый простой способ выполнить метод «огонь и забудь» на С#?

Сообщение Anonymous »

Я видел в WCF атрибут [OperationContract(IsOneWay = true)]. Но WCF кажется медленным и тяжелым просто для создания неблокирующей функции. В идеале было бы что-то вроде статического неблокирующего метода 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, вам нужно будет что-то сделать, чтобы заблокировать и сохранить поток в рабочем состоянии. В противном случае это может привести к принципу «выстрелить-забыть-но-никогда-на самом деле-выполнить», и в этом случае, конечно, было бы проще вообще не писать никакого кода. (Хорошее описание того, как это работает в ASP.NET)

Вернуться в «C#»