ฉันเห็นใน 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 )