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); } }
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."); } }