0

具体的には、MonoDroid でスレッドを使用する場合、RunOnUiThread() を呼び出してコールバックを呼び出すことを推奨しているすべてのドキュメントを見つけることができます。MonoTouch で使用できる同様の機能がありますが、どちらも GUI (Activity または IOS 上の対応する部分) が必要です。私が望むのは、スレッドを開始し、コールバックを渡し、スレッドを開始したスレッドでそのコールバックを呼び出すことができることです。例えば

ThreadPool.QueueUserWorkItem(state =>
{
    //Do Stuff


    execute_callback_magically_on_main_thread(() => callback(response));
});

何か案は?明確にするために、アクティビティなどへのハンドルを必要としないことをお勧めします。

4

3 に答える 3

1

このようなことをするとどうなりますか?(彼らが同じ署名を持っていると仮定して) 私は をいじってRunOnUiThreadいないので、それが署名かどうかはわかりません。

    public delegate void InvokeOnUIMethod(Action action);

    public void CallingMethod()
    {
        //iOS
        MyMethod(InvokeOnMainThread, () => { /* Your callback functionality  */ });

        //Android
        MyMethod(RunOnUiThread, () => { /* Your callback functionality  */ });
    }

    public void MyMethod(InvokeOnUIMethod execute_callback_magically_on_main_thread, Action callback)
    {
        System.Threading.ThreadPool.QueueUserWorkItem(state =>
        {
            //Do Stuff

            execute_callback_magically_on_main_thread(() => callback(response));
        });
    }

これが役立つことを願っています。

于 2013-04-10T20:29:22.007 に答える