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;
}
}