Я бачив у 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");
}
}
NB : Кожен, хто читає це, повинен задуматися, чи дійсно вони хочуть, щоб метод закінчився. (Див. Головну відповідь №2) Якщо метод має закінчитися, то в деяких місцях, як-от додаток ASP.NET, вам потрібно буде щось зробити, щоб заблокувати і зберегти живий потік. В іншому випадку це може призвести до "пожежно-забути-але-ніколи-фактично-виконати", і в цьому випадку, звичайно, було б простіше взагалі не писати код. ( Хороший опис того, як це працює в ASP.NET )