将C#代码转换为Android

将C#代码转换为Android,c#,android,.net,code-migration,C#,Android,.net,Code Migration,我不熟悉安卓系统。我在C#中实现了一种穿孔,我正试图在android中实现同样的逻辑 来自.NET解决方案的一些类是我在android中实现的新类,比如TimeSpan,尽管有一些类我需要实现,我得到了堆叠 试图在android中获得在.NET中表现为CancellationTokenSource的类 有些逻辑在C#中非常有效,但我不知道如何在android中实现它 代码: private static Boolean rec_and_wait(TimeSpan interval)

我不熟悉安卓系统。我在C#中实现了一种穿孔,我正试图在android中实现同样的逻辑

来自.NET解决方案的一些类是我在android中实现的新类,比如TimeSpan,尽管有一些类我需要实现,我得到了堆叠

  • 试图在android中获得在.NET中表现为CancellationTokenSource的类
  • 有些逻辑在C#中非常有效,但我不知道如何在android中实现它
  • 代码:

        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;
                }
            }
        }
    

    谢谢使用语言转换工具。你可以在列表中找到一些不错的


    它不会每次都给你一个100%的结果,但会让你接近最终结果,在这里和那里做一些小的改变,你就会得到你想要的。

    你可以查看。您可以使用C#创建Android、iOS、Mac和Windows应用程序,Xamarin Studio会将其编译为本机应用程序。

    学习Java和重写是最佳选择。我同意,我也同意,但有些类根本不相似,需要进行大量调整,有些类很简单,如TimeSpan,有些很难。。。这就是我问它的原因:-)它现在是免费的!您可以使用它,并用C#为Android和iOS进行所有编程。现在已经很成熟了!