これは残念ながら、Visual Studioのデバッグは、現在、どのように動作するか、です。 Task.Delay()
メソッドが待たれているので、プログラムの流れはYourMethod()
というメソッドに戻ります。その呼び出しが待たれていて、そのメソッドへの呼び出しの連鎖がすべて待っていた場合など、アプリケーションコンテキストに到達するまで続きます。例えば。 Xamarinの場合:
純粋なWindowsアプリケーションで
1 class MyActivity : Activity
2 {
3 // This function is called by the Xamarin/Android systems and is not awaited.
4 // As it is marked as async, any awaited calls within will pause this function,
5 // and the application will continue with the function that called this function,
6 // returning to this function when the awaited call finishes.
7 // This means the UI is not blocked and is responsive to the user.
8 public async void OnCreate()
9 {
10 base.OnCreate();
11 await initialiseAsync(); // awaited - so will return to calling function
12 // while waiting for operation to complete.
13
14 // Code here will run after initialiseAsync() has finished.
15 }
16 public async Task initialiseAsync()
17 {
18 await YourMethod(); // awaited - so will return to Line 11
19 // while waiting for operation to complete.
20
21 // Code here will run after GetNamesAsync() has finished.
22 }
23 }
は、Visual Studioは、すべてのアプリケーションのコンテキストを知っていて、基礎となる方法(プログラムのライフサイクル、ウィンドウイベント、スクリーン再描画など)はデバッグ(およびソースする必要がないことを知っていますコードにアクセスできない)。あなたが見ているのは、デバッグするコードがないため、1000msの間デバッガを一時停止することです。
Xamarinは、ベースActivity
クラスの実装とAndroidのすべての要件のようなもので、コードの余分な層を置きます。 Visual Studioはこれらをスキップすることを知らないので、現在待っているメソッドのスタックと呼ばれるコードをデバッグしようとします。これはおそらく基底Activity
クラスのOnCreate()
メソッドのようなものになるでしょう。おそらくコードにアクセスできないでしょう。
xamarinでのデバッグ経験は、通常はバグです。シフトf11は通常、モノ5が来るまで動作していた間にデバッガをクラッシュさせます。もし私があなただったら、私はbugzilla.xamarin.comでそれを報告したいと思います。うまくいけば、彼らはそれを修正することになります。デバッグは通常のwpfアプリケーションと比較してピタである – Dbl
これはたぶん 'async'の機能です - 単に' await'オペレーションのメソッドスコープから外れ、バックグラウンドで継続します。たぶん、あなたは**ちょうど私のコードのチェックボックスをオフに**切り替える必要があります。 – VMAtm