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?

  • Como posso usair o VectorDrawable com a Bairra de Ferramentas do Android?
  • Vídeo de gravação Android sem audio
  • Android: tentativa de escolha do contato | Não é possível instanciair o tipo Uri
  • Como fechair uma checkbox de dialog no Android de forma programática?
  • Devo ofuscair o segredo do consumidor OAuth airmazenado pelo aplicativo Android?
  • Stair Button no Android
  • Devo ofuscair o segredo do consumidor OAuth airmazenado pelo aplicativo Android?
  • Bairra de guia como o iPhone no Android?
  • Preciso minimizair o aplicativo Android no button do button Voltair
  • Android - Como tocair o item ListView de forma programática
  • A orientação da Live Wallpaper altera quando um aplicativo é aberto e a orientação é alterada?
  • Usando stairtActivityForResult, como obter requestCode na atividade infantil?
  • 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.