Vi en WCF que tienen el [OperationContract(IsOneWay = true)]
atributo. Pero WCF parece un poco lento y pesado solo para crear una función sin bloqueo. Idealmente, habría algo como no bloqueo de vacío estático MethodFoo(){}
, pero no creo que exista.
¿Cuál es la forma más rápida de crear una llamada a un método sin bloqueo en C #?
P.ej
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 : Todos los que lean esto deberían pensar si realmente quieren que el método termine. (Consulte la respuesta principal n. ° 2) Si el método tiene que finalizar, en algunos lugares, como una aplicación ASP.NET, deberá hacer algo para bloquear y mantener vivo el hilo. De lo contrario, esto podría llevar a "disparar-olvidar-pero-nunca-realmente-ejecutar", en cuyo caso, por supuesto, sería más simple no escribir ningún código. ( Una buena descripción de cómo funciona esto en ASP.NET )