C# WINDOWS MAUI專案 (c# maui task thread ui example)
C# WINDOWS MAUI專案 (c# maui task thread ui example)
	
資料來源:chatGPT
	
chatGPT Code:
using Microsoft.Maui.Controls;
using System;
using System.Threading.Tasks;
using System.Threading;
public class MainPage : ContentPage
{
    private Label resultLabel;
    public MainPage()
    {
        resultLabel = new Label
        {
            Text = "計算中...",
            HorizontalOptions = LayoutOptions.CenterAndExpand,
            VerticalOptions = LayoutOptions.CenterAndExpand
        };
        var calculateButton = new Button
        {
            Text = "開始計算",
            HorizontalOptions = LayoutOptions.CenterAndExpand
        };
        calculateButton.Clicked += async (sender, args) =>
        {
            resultLabel.Text = "計算中...";
            
            // 使用 Task.Run 在後台執行計算
            await Task.Run(() =>
            {
                int result = Calculate();
                // 使用 Device.BeginInvokeOnMainThread 更新 UI
                Device.BeginInvokeOnMainThread(() =>
                {
                    resultLabel.Text = $"計算結果: {result}";
                });
            });
        };
        Content = new StackLayout
        {
            Children = { resultLabel, calculateButton },
            VerticalOptions = LayoutOptions.CenterAndExpand,
            HorizontalOptions = LayoutOptions.CenterAndExpand
        };
    }
    private int Calculate()
    {
        // 模擬耗時計算
        Thread.Sleep(5000);
        return 42;
    }
}