close

C# 5.0 提供了 Async 關鍵字,用來做非同步的功能。當然在 F# 也會有同樣的功能,而且個人認為寫法比 C# 稍微簡潔一些。

下列 F# 程式碼,宣告了一個 async 區塊,之後再呼叫 Async 類別的 StartAsTask 方法。

namespace FSharpLibrary

type AsyncTestClass1() = 

    member this.AsyncTest() =
        let method1 = 
            async {
                do! Async.Sleep(3000)
                return "Test Value"
                }
        //method1 |> Async.StartAsTask
        Async.StartAsTask method1

這樣的寫法,程式碼不但精簡,而且也容易理解。

 

接下來的程式碼是用 C# 的 WinForm 專案來做示範,使用上並沒有不同。

        private async void button1_Click(object sender, EventArgs e)
        {
            string strResult = string.Empty;
            this.label1.Text = "waiting....";
            AsyncTestClass1 c = new AsyncTestClass1();
            strResult = await c.AsyncTest();
            this.label1.Text = strResult;
        }
arrow
arrow
    全站熱搜

    卑微研究生 發表在 痞客邦 留言(0) 人氣()