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; }
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(); }
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(); }
private void Writer_OnWritingFinished(object sender, EventArgs e) { Dispatcher.BeginInvoke((Action)(delegate { MessageBox.Show("Запись закончена"); buttonOpenFile.IsEnabled = true; buttonSaveFile.IsEnabled = true; writerButtons(true, false, false); reader.Stop(); readerButtons(true, false, false); reader = null; writer.Stop(); writerButtons(true, false, false); writer = null; labelProgress.Visibility = progressReading.Visibility = Visibility.Hidden; buttonOpenFile.IsEnabled = true; buttonSaveFile.IsEnabled = true; inputFile = null; outputFile = null; buttonOpenFile.IsChecked = false; buttonSaveFile.IsChecked = false; textBlockInputFileName.Content = ""; textBlockOutputFileName.Content = ""; progressReading.Value = 0; timer.IsEnabled = false; progressBuferSize.Value = 0; labelBufferSizeChangeable.Content = ""; })); }
private void buttonStop_Click(object sender, RoutedEventArgs e) { reader.Stop(); readerButtons(true, false, false); reader = null; writer.Stop(); writerButtons(true, false, false); writer = null; labelProgress.Visibility = progressReading.Visibility = Visibility.Hidden; buttonOpenFile.IsEnabled = true; buttonSaveFile.IsEnabled = true; inputFile = null; outputFile = null; buttonOpenFile.IsChecked = false; buttonSaveFile.IsChecked = false; textBlockInputFileName.Content = ""; textBlockOutputFileName.Content = ""; progressReading.Value = 0; timer.IsEnabled = false; progressBuferSize.Value = 0; labelBufferSizeChangeable.Content = ""; }