1

我正在使用 C# 编写一个 TFTP 客户端库。

  public class TFTPcl
 {

   public enum Opcodes
        {
            Unknown = 0,
            Read = 1,
            Write = 2,
            Data = 3,
            Ack = 4,
            Error = 5
        }

      public TFTPcl(string server)
            : this(server, 69)
        {
        }

//Get function copies the file from TFTP server to localsystem path

   public void Get(string remoteFile, string localFile)
   {

           Thread t = new Thread(() => Get(remoteFile, localFile, Modes.Octet));
            t.Start();         
    }

    public void Get(string remoteFile, string localFile, Modes tftpMode)

    {

     byte[] sendBuffer = CreateReqPacket(Opcodes.Read, remoteFile, tftpMode);

         /*process for getting the remote file from remote-server........*/ 

      }

    private byte[] CreateReqPacket(Opcodes opCode, string remoteFile, Modes tftpMode)

    {
    //Creates the TFTP request packet

    }
}

 class Program
    {
        static void Main(string[] args)
        {

            TFTPcl tf = new TFTPcl("xxx.xxx.xxx.xxx");//Server IP
            tf.Get("del.txt","d:\\Do.txt");
            tf.Get("del.txt", "d:\\Do2.txt");

        }
    }

这个 TFTP 客户端将作为一个库,以便其他应用程序调用GetAPI。目前,我已将其作为 exe 用于测试目的。

我的问题是:Get当从两个不同/相同的应用程序同时调用它时,该方法是否创建线程?它会导致任何问题,如同步问题吗?

CreateReqPacket因为是在线程函数(function)内部调用的,所以函数会不会有问题Get

如果问题仍然存在,如何处理这种情况?

4

0 回答 0