AndroidのSDKは、別のスレッドでコードを実行し、メイン(UI)スレッドで結果を取得できるようにするAsyncTask
クラスを備えています。要するに、このような何か:もちろんC#のAndroid AsyncTaskのような機能
class AsyncTask
{
void onPreExecute(...)
{
//Executed on the main thread BEFORE the secondary thread gets to work on anything.
}
void execute(...)
{
//This runs on the secondary thread.
}
void onPostExecute(...)
{
//This runs on the main thread AFTER the secondary thread finishes work. You get the result here in the form of some data type.
}
}
、これはただの荒いスキームですが、あなたはそれに慣れていない場合には、AsyncTaskに十分な情報を提供する必要があります。基本的には、私はMicrosoftの.NET Frameworkで同じ機能を探しています。
これを行うために自分のクラスで作業を始める前に、フレームワーク内で既に目的の結果を得ることができる何もないことを確認したいと思います。私は.NET 4.0を使用しています。おそらくSystem.Threading.Tasks.Taskの「巧妙な」使用のいくつかの並べ替え?私はこれをあなたに任せます。
要するに、関数に入力を渡し、セカンダリスレッドでコードを実行し、完了したら、メインスレッドを介していくつかのUI要素を更新します。メインスレッドを(たとえばTask.Wait()
経由で)ロックすることは、自分の要件にはうまくいかない。
ありがとうございます!これはトリックでした。代わりに私の関数で例外を処理しました。結果としてエラーメッセージを返すことは、私にとってもっと快適に思えます:) –
これは 'publishProgress'インターフェースを実装していないようです。それと同等のものはどれですか? –