Пример #1
0
        private void OnRead(IAsyncResult ar)
        {
            MyAsyncInfo info = (MyAsyncInfo)ar.AsyncState;

            int amountRead = 0;

            try
            {
                amountRead = info.MyStream.EndRead(ar);
                prValue   += amountRead;
            }
            catch (Exception)
            {
                System.Windows.MessageBox.Show("Failed to read from file.");
                info.MyStream.Close();
                return;
            }

            string text = Encoding.UTF8.GetString(info.ByteArray, 0, amountRead);

            dUpdateProgressBar mUpdateProgressBar = new dUpdateProgressBar(UpdateProgressBar);

            this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Send, mUpdateProgressBar, prValue);

            celStream.Write(info.ByteArray, 0, amountRead);
            if (info.MyStream.Position < info.MyStream.Length)
            {
                try
                {
                    info.MyStream.BeginRead(info.ByteArray, 0,
                                            1000, new AsyncCallback(OnRead), info);
                }
                catch (Exception)
                {
                    System.Windows.MessageBox.Show("Failed to contine copying.");
                    info.MyStream.Close();
                }
            }
            else
            {
                info.MyStream.Close();
                celStream.Close();
                prValue = 0;
                System.Windows.MessageBox.Show("File copied.");
                this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Send, mUpdateProgressBar, prValue);
            }
        }
Пример #2
0
        private void OnRead(IAsyncResult ar)
        {
            MyAsyncInfo info = (MyAsyncInfo)ar.AsyncState;

            int amountRead = 0;

            try
            {
                amountRead = info.MyStream.EndRead(ar);
                prValue   += amountRead;
            }
            catch (Exception)
            {
                System.Windows.MessageBox.Show("Nem sikerült a fájl olvasása.");
                info.MyStream.Close();
                return;
            }

            string text = Encoding.UTF8.GetString(info.ByteArray, 0, amountRead);

            dUpdateProgressBar mUpdateProgressBar = new dUpdateProgressBar(UpdateProgressBar);

            this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Send, mUpdateProgressBar, prValue);

            celStream.Write(info.ByteArray, 0, amountRead);
            if (info.MyStream.Position < info.MyStream.Length)
            {
                try
                {
                    info.MyStream.BeginRead(info.ByteArray, 0,
                                            1000, new AsyncCallback(OnRead), info);
                }
                catch (Exception)
                {
                    System.Windows.MessageBox.Show("Nem sikerült az olvasás folytatása.");
                    info.MyStream.Close();
                }
            }
            else
            {
                info.MyStream.Close();
                celStream.Close();
                System.Windows.MessageBox.Show("A fájl másolása megtörtént.");
            }
        }