Avatar
niderle.l
Člen
Avatar
niderle.l:

Ahoj, mohl by mi někdo poradit práci se Singletonem? Už s ním nějak pracuji i s TCP klientem, ale mám problém ten, že bez vypnutí aplikace se chci odpojit od serveru a znovu se připojit, ale v tu chvíli, kdy se dostanu k přihlášení, tak mi vypíše, že objekt je uvolněn e mohu k němu přistoupit pouze asynchroně. Nevíte někdo jak to udělat, aby se při určité příležitosti provedlo zase new na sigleton třídu? Děkuji

Zde je ten kód pro nastavení singletonu:

        private static SingletonTcpSpojeni instance = new SingletonTcpSpojeni();
        private static readonly object padlock = new object();

        private IPAddress ipAddress;
        private int port;
        private TcpClient tcp = new TcpClient();
        private NetworkStream network;
        private VerzeTransakce verzeTransakce;

        public IPAddress TcpIpAddress
        {
            get
            {
                return ipAddress;
            }
            set
            {
                ipAddress = value;
            }
        }

        public int Instanc
        {
            set
            {
                SingletonTcpSpojeni instance = new SingletonTcpSpojeni();
            }
        }

        public int TcpPort
        {
            get
            {
                return port;
            }
            set
            {

                port = value;
            }
        }

        public VerzeTransakce TypPrijmuTransakce
        {
            get
            {
                return verzeTransakce;
            }
            set
            {
                verzeTransakce = value;
            }
        }

        public static SingletonTcpSpojeni Instance
        {

            get
            {
                lock (padlock)
                {
                    if (instance == null)
                    {
                        instance = new SingletonTcpSpojeni();
                    }
                    return instance;
                }

            }
        }

static SingletonTcpSpojeni()
        {

        }

        private SingletonTcpSpojeni()
        {

        }

        public bool NavazatTcpSpojeni()
        {
            Thread.Sleep(100);
            tcp.Connect(TcpIpAddress, TcpPort);
            tcp.ReceiveTimeout = 30000;
            return (tcp.Connected == true ? true : false);
        }

public void ZruseniTcpSpojeni()
        {

            tcp.Client.Disconnect(false);
            network.Close();
        }
 
Odpovědět 15.12.2015 9:14
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.