Преобразование кода C# в Android

Я новичок в андроиде. Я реализовал пробивку отверстий в С#, и я пытаюсь реализовать ту же логику в Android.

Некоторые классы из решения .NET, которые я реализовал, новые классы в Android, такие как TimeSpan, хотя есть некоторые классы, которые мне нужно реализовать, и я получил стек.

  1. Попытка получить класс в Android, который ведет себя как CancellationTokenSource в .NET.
  2. Есть некоторая логика, которая отлично работает на С#, но я не знаю, как реализовать ее на андроиде.

КОД:

    private static Boolean rec_and_wait(TimeSpan interval)
    {
        Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
        try
        {
            CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();                
            byte[] data = new byte[1024];
            IAsyncResult ar = socket.BeginReceive(data, 0, data.Length, SocketFlags.None, null, null);
            int res = WaitHandle.WaitAny(new WaitHandle[] { ar.AsyncWaitHandle, _cancellationTokenSource.Token.WaitHandle }, interval.Add(TimeSpan.FromSeconds(10))); // allow extra 10 seconds for network delay
            switch (res)
            {
                case 0: // response
                    return true;
                case WaitHandle.WaitTimeout: // time out
                case 1: //cancelled
                default: // should not happen
                    return false;
            }
        }
        catch
        {
            return false;
        }
        finally
        {
            if (socket != null)
            {
                socket.Close();
                socket.Dispose();
                socket = null;
            }
        }
    }

Спасибо


person ishigh    schedule 19.03.2014    source источник
comment
изучение Java и переписывание — лучший вариант.   -  person Display Name    schedule 19.03.2014
comment
Я согласен, и я согласен с этим, но некоторые классы совсем не похожи и требуют множества настроек, некоторые из них простые, такие как TimeSpan, а некоторые очень сложные... поэтому я и спрашиваю об этом. :-)   -  person ishigh    schedule 19.03.2014


Ответы (2)


Вы можете проверить Xamarin. Вы можете создавать приложения для Android, iOS, Mac и Windows с помощью C#, а Xamarin Studio компилирует их для вас в нативные приложения.

person Tom Spee    schedule 19.03.2014
comment
Теперь это бесплатно! Вы можете использовать его и программировать для Android и iOS на C#. А сейчас очень взрослая! - person TChadwick; 18.11.2016