2017년 1월 31일 화요일

자마린 스튜디오(Xamarin Studio)에서 비동기로 얼럿 코드를 실행하기

C#을 계속 사용했던 개발자들에게는 Task클래스가 익숙합니다. 아래의 코드를 보면 태스크를 통해 경고 메세지 결과를 처리하는 코드가 보입니다. 

<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:DemoAlertCallback" x:Class="DemoAlertCallback.DemoAlertCallbackPage">

    <StackLayout>
        <Button Text="Invoke Alert"
                FontSize="Large"
                HorizontalOptions="Center"
                VerticalOptions="CenterAndExpand"
                Clicked="OnButtonClicked" />
        <Label x:Name="label"
                Text="Tap button to invoke alert"
                FontSize="Large"
                HorizontalTextAlignment="Center"
                VerticalOptions="CenterAndExpand" />
    </StackLayout>
</ContentPage>

namespace DemoAlertCallback
{
    public partial class DemoAlertCallbackPage : ContentPage
    {
        bool result; 

        public DemoAlertCallbackPage()
        {
            InitializeComponent();
        }

        void OnButtonClicked(object sender, EventArgs args)
        {
            Task<bool> task = DisplayAlert("Simple Alert",
                                           "Decide on an option",
                                           "yes or ok""no or cancel");
            task.ContinueWith(AlertDismissedCallback);
            label.Text = "Alert is currently displayed"
        }
        void AlertDismissedCallback(Task<bool> task)
        {
            result = task.Result;
            Device.BeginInvokeOnMainThread(DisplayResultCallback); 
        }
        void DisplayResultCallback()
        {
            label.Text = String.Format("Alert {0} button was pressed",
                                       result ? "OK" : "Cancel"); 
        }
    }
}


실행해서 버튼을 클릭하면 결과를 확인할 수 있다.


댓글 없음:

댓글 쓰기

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.

제 유튜브 채널에 꾸준하게 영상을 올리고 있습니다. ㅎㅎ 2025년에는 100개 정도의 영상을 올릴 생각입니다.

  2024년에 시작한 것이 유튜브 채널입니다. 주로 파이썬 프로그래밍에 관련된 영상들을 올릴 생각입니다. ㅎㅎ 제가 집필한 책을 기본으로 해서 파이썬의 기본 문법, 라이브러리, 챗GPT와의 연동등을 주로 올리려고 합니다. 현재 20개 정도 영상을 ...