第二十章:非同步和檔案I/O.(二)
從回撥到等待
Page類定義了三種方法,可以顯示有時稱為警報或訊息框的可視物件。 這樣的框在螢幕上彈出一些資訊或使用者的問題。 警報框是模態的,這意味著在顯示警報時應用程式的其餘部分不可用。 在返回與應用程式互動之前,使用者必須通過按下按鈕來解除它。
Page類的這三種方法中有兩種名為DisplayAlert。 第一個只顯示一些帶有一個按鈕的文字以關閉該框,而第二個包含兩個按鈕,用於是或否響應。 DisplayActionSheet方法類似,但顯示任意數量的按鈕。
在iOS,Android和Windows執行時,這些方法是使用特定於平臺的物件實現的,這些物件使用事件或回撥方法通知應用程式警報框已被解除以及使用者按下哪個按鈕來關閉它。 但是,Xamarin.Forms已使用非同步介面包裝這些物件。
Page類的這三個方法定義如下:
Task DisplayAlert (string title, string message, string cancel)
Task<bool> DisplayAlert (string title, string message, string accept, string cancel)
Task<string> DisplayActionSheet (string title, string cancel, string destruction,
params string[] buttons)
它們都返回Task物件。 Task和Task 類在System.Threading.Tasks名稱空間中定義,它們構成了基於任務的非同步模式的核心,稱為TAP。 TAP是在.NET中處理非同步操作的推薦方法。任務並行庫(TPL)建立在TAP之上。
相比之下,WebRequest的BeginGetResponse和EndGetResponse方法代表了涉及IAsyncResult的非同步操作的舊方法。這種較舊的方法稱為非同步程式設計模型或APM。您可能還會遇到使用基於事件的程式碼
非同步模型(EAP)通過事件從非同步作業返回資訊。
您已經在第15章“互動式介面”中看到了SetTimer程式中最簡單的DisplayAlert形式.SetTimer使用警報來指示計時器何時消失。該程式似乎並不關心DisplayAlert返回的Task物件,因為警報框僅用於通知目的。沒有必要從使用者那裡獲得響應。但是,返回Task 和Task 的方法需要將實際資訊傳回給應用程式,指示使用者按下哪個按鈕來解除警報。
Task 的返回值有時被稱為“promise”。實際值或物件尚未可用,但如果沒有出錯,它將來可用。
您可以通過幾種不同的方式使用Task 物件。這些方法基本上是等價的,但C#語法卻完全不同。
相關文章
- 第二十章:非同步和檔案I/O.(一)非同步
- 第二十章:非同步和檔案I/O.(九)非同步
- 第二十章:非同步和檔案I/O.(八)非同步
- 第二十章:非同步和檔案I/O.(十四)非同步
- 第二十章:非同步和檔案I/O.(二十三)非同步
- 第二十章:非同步和檔案I/O.(二十一)非同步
- 第二章 檔案和目錄操作命令
- socket阻塞與非阻塞,同步與非同步、I/O模型非同步模型
- 檔案備份和同步工具:Syncovery for mac v9.49i啟用版Mac
- Linux-檔案寫入和檔案同步Linux
- 我的第二故鄉 – 成都 I
- Spring Boot第二彈,配置檔案怎麼造?Spring Boot
- SpringBoot第二篇:配置檔案詳解一Spring Boot
- ♻️同步和非同步;並行和併發;阻塞和非阻塞非同步並行
- 雲備份和同步檔案資料
- rsync同步和備份檔案到本地
- 談談對不同I/O模型的理解 (阻塞/非阻塞IO,同步/非同步IO)模型非同步
- python怎麼讀取txt檔案第二行-Python:如何選擇文字檔案的第一行,以及第二行……?...Python
- iGuard和NFS檔案同步的解決方案NFS
- 實現手機和PC檔案同步 GitLab和TermuxGitlabUX
- Python:讀寫檔案(I/O) | 組織檔案Python
- 054 非單檔案元件元件
- 第二章:前端視角——NodeJS檔案操作fs(1)前端NodeJS
- Java 非阻塞 IO 和非同步 IOJava非同步
- 使用Unison 同步檔案
- 二、javase基礎知識總結(從檔案 I/O開始)Java
- i春秋 第二屆春秋歡樂賽-Hello-World
- 同步非同步,阻塞非阻塞非同步
- 非同步、同步、阻塞、非阻塞非同步
- 使用ln同步檔案內容,支援忽略檔案
- Mac檔案同步軟體Mac
- Java中I/O流:阻塞和非阻塞範例Java
- 免費檔案同步軟體有哪些?檔案同步軟體哪個好
- ctfshow--紅包題第二彈 臨時檔案命令執行
- c++學習心得第二期 多型+檔案操作C++多型
- React Fiber原始碼分析 第二篇(同步模式)React原始碼模式
- IO通訊模型(二)同步非阻塞模式NIO(NonBlocking IO)模型模式BloC
- 同步、非同步,阻塞、非阻塞理解非同步