Tôi thấy trong WCF họ có [OperationContract(IsOneWay = true)]
thuộc tính. Nhưng WCF có vẻ như chậm và nặng nề chỉ để tạo ra một chức năng không chặn. Lý tưởng nhất là sẽ có một cái gì đó giống như bỏ chặn khoảng trống tĩnh MethodFoo(){}
, nhưng tôi không nghĩ rằng nó tồn tại.
Cách nhanh nhất để tạo một cuộc gọi phương thức không chặn trong C # là gì?
Ví dụ
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 : Mọi người đọc điều này nên suy nghĩ nếu họ thực sự muốn phương pháp kết thúc. (Xem câu trả lời hàng đầu số 2) Nếu phương thức phải kết thúc, thì ở một số nơi, như ứng dụng ASP.NET, bạn sẽ cần phải làm gì đó để chặn và giữ cho luồng tồn tại. Mặt khác, điều này có thể dẫn đến "lửa quên-nhưng-không bao giờ thực sự thực thi", trong trường hợp đó, tất nhiên, sẽ đơn giản hơn nếu không viết mã nào cả. ( Một mô tả hay về cách thức hoạt động trong ASP.NET )