第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在C#中執(zhí)行fire and forget方法的最簡(jiǎn)單方法是什么?

在C#中執(zhí)行fire and forget方法的最簡(jiǎn)單方法是什么?

慕桂英4014372 2019-08-15 15:27:05
在C#中執(zhí)行fire and forget方法的最簡(jiǎn)單方法是什么?我在WCF中看到他們有[OperationContract(IsOneWay = true)]屬性。但是WCF似乎有點(diǎn)緩慢而且很重要,只是為了創(chuàng)建一個(gè)非阻塞功能。理想情況下會(huì)出現(xiàn)類似靜態(tài)無(wú)效的阻塞MethodFoo(){},但我認(rèn)為不存在。在C#中創(chuàng)建非阻塞方法調(diào)用的最快方法是什么?例如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");     }}注意:閱讀此內(nèi)容的每個(gè)人都應(yīng)該考慮他們是否真的想要完成這個(gè)方法。(參見#2最佳答案)如果方法必須完成,那么在某些地方,比如ASP.NET應(yīng)用程序,你需要做一些事情來(lái)阻止并保持線程活著。否則,這可能會(huì)導(dǎo)致“忘記但永遠(yuǎn)不會(huì)實(shí)際執(zhí)行”,在這種情況下,當(dāng)然,根本不編寫任何代碼會(huì)更簡(jiǎn)單。(很好地描述了它在ASP.NET中的工作原理)
查看完整描述

3 回答

?
慕運(yùn)維8079593

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊

對(duì)于C#4.0及更新版本,讓我覺得Ade Miller現(xiàn)在給出了最好的答案:在c#4.0中執(zhí)行fire and forget方法的最簡(jiǎn)單方法

Task.Factory.StartNew(() => FireAway());

甚至...

Task.Factory.StartNew(FireAway);

要么...

new Task(FireAway).Start();

哪里FireAway

public static void FireAway(){
    // Blah...}

因此,憑借類和方法名稱的簡(jiǎn)潔性,這取決于您選擇的那個(gè),使得線程池版本超過(guò)6到19個(gè)字符:)

ThreadPool.QueueUserWorkItem(o => FireAway());


查看完整回答
反對(duì) 回復(fù) 2019-08-15
  • 3 回答
  • 0 關(guān)注
  • 877 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)