伊莉討論區

標題: 非同步的寫法?? [打印本頁]

作者: ggnnyy    時間: 2017-7-19 04:26 PM     標題: 非同步的寫法??

本帖最後由 ggnnyy 於 2017-7-19 04:35 PM 編輯

各位大大好:
以下是我用參考網路上的非同步寫法寫出來的sample,不過理解上應該是有錯誤,所以沒有達到效果,
想請各位大大指點一下該怎麼修改....
(代碼貼不上去,只能貼文字檔了)[attach]119569047[/attach]
作者: sam30525sam    時間: 2017-7-19 05:42 PM

用下載的方式會減少積分,
建議你兩點
1. 把你的參考網站PO出來
2. 把你的code貼出來



作者: ggnnyy    時間: 2017-7-19 10:12 PM

sam30525sam 發表於 2017-7-19 05:42 PM
用下載的方式會減少積分,
建議你兩點
1. 把你的參考網站PO出來

抱歉  我試過貼CODE了,一直出現錯誤訊息,我研究一下這裡怎麼貼code好了...
作者: ricklzh    時間: 2017-9-12 03:41 PM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: ggnnyy    時間: 2017-9-12 09:37 PM

ricklzh 發表於 2017-9-12 03:41 PM
幫貼代碼

非常感謝~~~~就不知道怎麼了,就是沒辦法貼....
作者: ricklzh    時間: 2017-9-13 09:08 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: sam30525sam    時間: 2017-9-15 11:37 PM

本帖最後由 sam30525sam 於 2017-9-15 11:39 PM 編輯
ggnnyy 發表於 2017-9-12 09:37 PM
非常感謝~~~~就不知道怎麼了,就是沒辦法貼....

沒有達到你要的效果,有兩個原因,
1. 你的寫法有問題
2. applicaion與web的非同步有點不一樣

建議你看一下此篇文章,了解await/async怎麼玩的
http://www.huanlintalk.com/2016/01/async-and-await.html
另外再建議你先從
Thread > Task > await/async
的順序學習,
有空的話也可以看看BeginXXXX/EndXXXX

作者: chez_0000    時間: 2017-9-26 05:27 PM

如果你想做到的是讓ts()和te()同時執行的話,就不應該await他們(await, 顧名思義...)
最簡單的方式應該是
  1. ViewBag.ts = Task.Run(() => ts());
  2. ViewBag.te = Task.Run(() => te());
複製代碼

作者: caoh    時間: 2017-10-1 11:17 PM

await 顧名思義就是非同步的等待,不會卡住

但前提是你要先產生非同步的內容,你應該要把 Thread.Sleep 改成 await Task.Delay

而 await 之後的東西會被做成 continuation (類似手動 Task.ContinueWith) 所以不會被卡住
  
  
  

補充內容 (2017-10-2 01:12 AM):
但試問題變成 About 裡面的 ts()、te() 會循序執行,因為 continuation 的緣故
應該要把他們改成 await Task.WhenAll(ts(), te()) 才會並行執行,然後再延續
後面的 Vi




歡迎光臨 伊莉討論區 (http://www98765.eyny.com/) Powered by Discuz!