質問: ### 前提・実現したいこと Visual Studio 2015 Community 2015を使って、 C#のXamarinでAndroidアプリを作成しております。 .net4.5です Thread.Sleepを使いたいのですが、クラスが見つかりません。 ### 発生している問題・エラーメッセージ using System.Threading; を宣言しても Threadクラスがありません。 MSDNでは https://msdn.microsoft.com/ja-jp/library/d00bd51t(v=vs.110).aspx System.Threading名前空間にあると乗っているのですが コードを書くと、エラーが表示されます。 ``` 現在のコンテキストに'Thread'という名前は存在しません。 ``` ### 該当のソースコード using System; using System.Threading; namespace MyApp{ public class ThreadTest { static void Main() { Thread.Sleep( 2000 ); } } } ### 試したこと Thread.Sleep( 2000 ); ではなく、 System.Threading.Thread.Sleep( 2000 ); でもダメです。 そもそも System.Threading.の時点で インテリセンスにThreadが表示されません。 なぜでしょうか? ### 補足情報(言語/FW/ツール等のバージョンなど) Visual Studio 2015 Community 2015 .Net Framework4.5 C# Xamarin.Android
回答: こんにちは。 XamarinではSystem.Threading.Threadは使えなかった気がします。 await System.Threading.Tasks.Task.Delay(int milliseconds) を代わりに使いましょう。 ``` public async Hoge() { await Task.Delay(2000); // 2秒待機 // その後の処理 } ``` ただしコンストラクタはasyncに出来ないので以下のように記述します。 ``` public Main() { var task = Task.Delay(2000); // 2秒待機するタスクを開始 task.Wait(); // taskが終了するまで待機 // その後の処理 // もしくは Task.Delay(2000).Wait(); // その後の処理 } ```