コード例 #1
0
ファイル: MainWindow.xaml.cs プロジェクト: puninvv/university
        public MainWindow()
        {
            InitializeComponent();
            reader = null;
            writer = null;
            buffer = null;
            inputFile = null;
            outputFile = null;
            bufferSize = -1;
            labelProgress.Visibility = progressReading.Visibility = Visibility.Hidden;

            timer = new DispatcherTimer();
            timer.Interval = new TimeSpan(500);
            timer.Tick += Timer_Tick;
            progressBuferSize.Minimum = 0;
        }
コード例 #2
0
ファイル: MainWindow.xaml.cs プロジェクト: puninvv/university
        private void buttonReaderStart_Click(object sender, RoutedEventArgs e)
        {
            if (bufferSize == -1)
            {
                MessageBox.Show("Не задан максимальный размер буфера!");
                return;
            }
            if (inputFile == null)
            {
                MessageBox.Show("Не задан входной файл");
                return;
            }
            if (buffer == null)
                buffer = new Classes.ConcurrentNonSizebleQueue<short>(bufferSize);

            if (reader == null)
            {
                try {
                    reader = new Classes.ReaderThread(inputFile, ref buffer);
                    reader.OnReadingFinished += Reader_OnReadingFinished;
                    reader.OnPercentageUpped += Reader_OnReadingStateChanged;
                } catch(Exception)
                {
                    reader = null;
                    MessageBox.Show("Ошибка при открытии исходного файла");
                }
            }

            buttonOpenFile.IsEnabled = false;
            if (timer.IsEnabled == false)
                timer.IsEnabled = true;
            labelProgress.Visibility = progressReading.Visibility = Visibility.Visible;

            readerButtons(false, true, true);

            reader.Read();
        }
コード例 #3
0
ファイル: MainWindow.xaml.cs プロジェクト: puninvv/university
        private void buttonWriterStart_Click(object sender, RoutedEventArgs e)
        {
            if (bufferSize == -1)
            {
                MessageBox.Show("Не задан максимальный размер буфера!");
                return;
            }
            if (outputFile == null)
            {
                MessageBox.Show("Не задан выходной файл");
                return;
            }
            if (buffer == null)
                buffer = new Classes.ConcurrentNonSizebleQueue<short>(bufferSize);
            if (writer == null)
            {
                try {
                    writer = new Classes.WriterThread(outputFile, ref buffer);
                    writer.OnWritingFinished += Writer_OnWritingFinished;
                }
                catch (Exception)
                {
                    reader = null;
                    MessageBox.Show("Ошибка при открытии файла для сохраниения");
                }
            }

            buttonSaveFile.IsEnabled = false;

            if (timer.IsEnabled == false)
                timer.IsEnabled = true;

            buttonWriterStart.IsEnabled = false;
            buttonWriterStop.IsEnabled = true;
            buttonWriterPause.IsEnabled = true;

            writer.Write();
        }