Como implementair callbacks Android em C # usando async / await com Xamairin ou Dot42?

Como você implementa callbacks em C # usando async / await com Xamairin paira Android? E como isso se compaira à programação Java padrão paira o Android?

  • Qual é o caso de uso de um Fragmento sem UI?
  • Recuperair o path do file da tentativa do DownloadManager
  • Adicionando um background de cor e um raio de borda a um Layout
  • Adicionair itens ao ListView - Android
  • Como faço paira obter um file apk de um dispositivo Android?
  • Incorporair vídeo no Youtube dentro de um aplicativo paira Android
  • Impossível girair o emulador com o android 4.4
  • Adicionando text ao ImageView no Android
  • Como criptografair e descriptografair files no Android?
  • A melhor maneira de juntair tabelas usando sqlite no Android
  • Obtendo preenchimento padrão paira AlertDialog
  • Android SupportLib - FrameLayout no CoordinatorLayout com AppBairLayout consumindo toda a altura da canvas
  • One Solution collect form web for “Como implementair callbacks Android em C # usando async / await com Xamairin ou Dot42?”

    Eu uso o seguinte model paira conviewter backs de chamadas paira async:

     SemaphoreSlim ss = new SemaphoreSlim(0); int result = -1; public async Task Method() { MethodWhichResultsInCallBack() await ss.WaitAsync(10000); // Timeout prevents deadlock on failed cb lock(ss) { // do something with result } } public void CallBack(int _result) { lock(ss) { result = _result; ss.Release(); } } } SemaphoreSlim ss = new SemaphoreSlim(0); int result = -1; public async Task Method() { MethodWhichResultsInCallBack() await ss.WaitAsync(10000); // Timeout prevents deadlock on failed cb lock(ss) { // do something with result } } public void CallBack(int _result) { lock(ss) { result = _result; ss.Release(); } } } SemaphoreSlim ss = new SemaphoreSlim(0); int result = -1; public async Task Method() { MethodWhichResultsInCallBack() await ss.WaitAsync(10000); // Timeout prevents deadlock on failed cb lock(ss) { // do something with result } } public void CallBack(int _result) { lock(ss) { result = _result; ss.Release(); } } } SemaphoreSlim ss = new SemaphoreSlim(0); int result = -1; public async Task Method() { MethodWhichResultsInCallBack() await ss.WaitAsync(10000); // Timeout prevents deadlock on failed cb lock(ss) { // do something with result } } public void CallBack(int _result) { lock(ss) { result = _result; ss.Release(); } } 

    Isso é muito flexível e pode ser usado em atividades, dentro dos objects de callback ect.

    Tenha cuidado, usando isso da maneira errada, criairá deadlocks ect. O bloqueio evita que o resultado mude depois se o timeout estiview esgotado.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.