我用的VS2019,小白想學下委托。
網上代碼至今copy進來執行,直接報錯,說平臺不支持?
請問是什么問題?

uj5u.com熱心網友回復:
看框架版本了,netcore以上修改了很多東西。因為netcore的目標是跨平臺,所以很多windows上的專用特性不再提供支持uj5u.com熱心網友回復:
上面說了原因,下面說解決方法。使用新的Task語法完成這種任務,這種語法比你目前的寫法要簡單直白的多
try
{
var 結果= await task.run(()=>{ 你要做的事情})
}
catche(ex)
{
}
這就是你要的功能,“異步等待一個任務完成,并拿到結果”,當然他如果有例外,你也可以“采集”到
uj5u.com熱心網友回復:
另外,你原先的方法其實有些難看。雖然你認為他是個異步,但其實他是個同步阻塞方法(你用while給阻塞上了),而真正的異步方法是不用阻塞的,他采用回呼方法去通知任務完成(同時使用背景關系context去保持環境)而async/await task 這類體系,其實是采用IO信號完成,很多人喜歡把這塊內容等效執行緒,其實根本就不是。執行緒是執行緒,異步是異步。執行執行緒的是cpu任務,而異步任務其實是IO任務而非cpu任務(你可以啟動一個執行緒讓cpu執行,但await 本身卻是等待一個IO完成,而不是等待執行緒完成,所以async await本身和執行緒不等效,哪怕沒有執行緒他也可以完成。比如你點擊buttonA啟動一個任務,去等待ButtonB的點擊,他當然也可以是一個異步)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/268701.html
標籤:C#
