windows8

Popupの罠

PopupにはIsLightDismissEnabledというプロパティがあって、ユーザーがPopup以外のところを操作するとPopupが勝手に閉じるようにできる。 まあ便利ではあるのだが、キーボード操作には反応しないことが判明。 ケース1 LayoutAwarePageを基にして画面を作って…

ObservableCollectionの罠

ObservableCollection.InsertでArgumentExceptionが起きる時の回避策。 一覧系のコントロールにObservableCollectionをバインドする時コントロールがObservableCollectionのCollectionChangedイベントにデリゲートを設定しているが、この解除が適切にされな…

asyncとawaitとtaskとthread

超絶勘違いをしていた。 asyncとawaitキーワードを指定して非同期処理をしてもマルチスレッドになるわけではない。 てっきりマルチスレッドになるもんだと思ってた。 その割にスレッドIDが変わらないのは何だかな〜と不思議に思ってた。 asyncキーワードをつ…

イベントハンドラのasync

さらに先日書いた記事の補足。 実行されないコードの問題はawait付きの呼び出しではなく、async付きのイベントハンドラのようだ。 private async void OnClick(object sender, EventArgs args) { Debug.WriteLine("hoge1"); await hoge2(); Debug.WriteLine(…

アプリの中断

先日書いた記事の補足。 microsoftのサイトによると、中断というのはosによるプロセス/スレッドのスケジューリングの対象外になることだそうだ。 プログラムからすれば時が止まるのと同義。 先日の記事に書いた、スレッドがフォアグラウンドとかバックグラウ…

awaitの罠?

手元に開発環境がないのでうろ覚えではあるが・・・ awaitの後のコードが実行されないというケースがあった。 Debug.WriteLine("hoge1"); await hoge2(); Debug.WriteLine("hoge3");というコードで、hoge2は確かに最後まで実行されているのになぜかhoge3が出…

アプリの終了

今月号の日経ソフトウェアでwindows8アプリの開発を取り上げた記事があり、その中でアプリを終了させる方法が説明されていた。 画面に終了ボタンを表示してそのclickイベントで終了させている。 windows8のアプリではユーザーにアプリを終了させる方法を提示…