База ответов ИНТУИТ

Практикум прикладного программирования на C# в среде VS.NET 2008

<<- Назад к вопросам

Пример кода:
private void button1_Click(object sender, System.EventArgs e){ manualresetevent=new ManualResetEvent(false); Thread thread1 = new Thread(new ThreadStart(AsynchronProcess1)); //Процесс 1 стартует первым thread1.Start(); Thread thread2 = new Thread(new ThreadStart(AsynchronProcess2)); thread2.Start();Функция AsynchronProcess1
показывает, что:

(Отметьте один правильный вариант ответа.)

Варианты ответа
из процесса первого обратившегося к файлу делать можно все, даже при установленной блокировке. Перед окончанием процесса он приостанавливается, но блокировка для файла остается до выполнения большей части процесса 1
из процесса первого обратившегося к файлу делать можно все, блокировка для файла остается в течение выполнения всего процесса 2
из процесса первого обратившегося к файлу делать можно все, даже при установленной блокировке. Перед окончанием процесса он приостанавливается, но блокировка для файла остается до выполнения большей части процесса 2 (Верный ответ)
Похожие вопросы
Пример кода:
 private void DigitalClock_StopDigitalClock(object sender, EventArgs e)   {       this.RaiseEvent(new RoutedEventArgs(Clock.StopClockEvent));    }
демонстрирует:
Рассмотрим пример кода:struct Situation { //Наш поток public FileStream filestream; //Здесь будем хранить данные public byte [] bText; //Размер буфера public long bufSize;public MaualResetEvent manualresetevent;}static void EndAsingRead(IAsyncResult iasyncresult){Situation situation = (Situation)iasyncresult.AsyncState; int readCount = situation.filestream.EndRead(iasyncresult); situation.filestream.Close();situation.manualresetevent.Set(); situation.manualresetevent.Close();}Если в приведенном выше коде закоментировать строку situation.manualresetevent.Set(), то в этом случае:
Внесем в файл C:\a.txt числа 0123456789, выполним следующий код:
private void button1_Click(object sender, System.EventArgs e){//Файл создан заранее, его объем должен быть достаточно большим string path = "C:\a.txt"; using(FileStream        fileStream = new FileStream(path, FileMode.Open)) {  fileStream.Seek(1, SeekOrigin.Begin);    for (int i=0;i<fileStream.Length;i++)      textBox1.Text=fileStream.ReadByte()+" ";  }
Результат в TextBox:
Пример кода:
{        void timer_Tick(object sender, EventArgs e)                    if (PropertyChanged != null)                PropertyChanged(this, new PropertyChangedEventArgs("Time"));                if (minutes <= 0 && seconds <= 0)            {                timer.Stop();                if (StopDigitalClock != null)                    StopDigitalClock(this, EventArgs.Empty);            }   }
демонстрирует:
Пример кода:
 time = COUNT_TIME * 60;   // Секунды        }            public void Start()        {            timer.Stop();            timer.Start();        }            public void Restart()        {            time = COUNT_TIME * 60;   // Секунды            timer.Stop();            timer.Start();        }            public void StopResult()        {            timer.Stop();            if (StopDigitalClock != null)                StopDigitalClock(this, EventArgs.Empty);        }            public void Stop()        {            timer.Stop();        }
демонстрирует:
Внесем в файл C:\a.txt числа 0123456789, выполним следующий код:
private void button1_Click(object sender, System.EventArgs e){//Файл создан заранее его объем должен быть достаточно большим string path = "C:\a.txt";FileInfo fileinfo=new FileInfo(path);  using(FileStream       fileStream = fileinfo.OpenWrite()) {  fileStream.Seek(0, SeekOrigin.Begin);          byte[] bArray=new byte[10];  Random numrandom = new Random();  for(int i=0; i <bArray.Length; i++)  {   //Записываем случайные числа в массив   bArray[i]=(byte)numrandom.Next(48,57);   fileStream.WriteByte(bArray[i]);   textBox1.Text+=bArray[i];  }				 }}
полный результат выполнения кода:
Внесем в файл C:\a.txt числа 0123456789, выполним следующий код:
private void button1_Click(object sender, System.EventArgs e){   //Файл создан заранее его объем должен быть достаточно большимstring path = "C:\a.txt"; FileInfo fileinfo=new FileInfo(path);  using(FileStream   fileStream = fileinfo.OpenRead()) {  fileStream.Seek(0, SeekOrigin.Begin);  byte[] bArray=new byte[10];    int iBytes=fileStream.Read(bArray,0,10);    if(iBytes == 10)  {   for(int i=0; i < iBytes; i++)   textBox1.Text+= bArray[i];  }}						
Результат:
Пример кода:
public void Start(){    clock.Start();}public void Restart(){    clock.Restart();}public void StopResult(){    clock.StopResult();}public void Stop(){    clock.Stop();}
демонстрирует:
Рассмотрим следующий фрагмент кода:private void button1_Click(object sender, System.EventArgs e){ string path = @"C:\a.txt";using(FileStream filestream=File.Open(path, FileMode.OpenOrCreate)) { BinaryWriter binarywriter = new BinaryWriter(filestream); decimal dNum=20.3m; binarywriter.Write(dNum); dNum=723.05m; binarywriter.Write(dNum); dNum=3000.105m; binarywriter.Write(dNum); }using(FileStream filestream=File.Open(path, FileMode.Open)) { BinaryReader binaryreader = new BinaryReader(filestream); decimal dNum; filestream.Seek(16,SeekOrigin.Begin); textBox1.Text+=binaryreader.ReadDecimal().ToString()+" "; filestream.Seek(32,SeekOrigin.Begin); textBox1.Text+=binaryreader.ReadDecimal().ToString()+" "; filestream.Seek(0,SeekOrigin.Begin); textBox1.Text+=binaryreader.ReadDecimal().ToString()+" "; }}Результат в TextBox:
Рассмотрим код:
private void button1_Click(object sender, System.EventArgs e){ StringBuilder sbText= new StringBuilder("Дом, который построит Джек"); StringBuilder sbText1= new StringBuilder("Пшеница, которая в темном чулане хранилась"); StringBuilder sbText2= new StringBuilder("Кот, который пугал синицу");  StringWriter stringwriter = new StringWriter();       sbText=sbText.Replace("построит","построил"); sbText1=sbText1.Replace("хранилась","хранится"); sbText2=sbText2.Replace("пугал","пугает"); stringwriter.Write(sbText); stringwriter.Write(stringwriter.NewLine); stringwriter.Write(sbText1);			 stringwriter.GetStringBuilder().Insert(sbText.Length+1,sbText2); string path = @"C:\a.txt";using(TextWriter streamWriter = new StreamWriter(path,true,System.Text.Encoding.Default)) {  streamWriter.Write(stringwriter); } stringwriter.Close(); using(TextReader streamreader = new StreamReader(path,System.Text.Encoding.Default)) {  StringReader stringreader = new StringReader(streamreader.ReadToEnd());  textBox1.Text+=stringreader.ReadLine()+"\r\n";  textBox1.Text+=stringreader.ReadLine()+"\r\n";  sbText=new StringBuilder(stringreader.ReadLine());  sbText=sbText.Replace("Кот", "Пес",0,5);  textBox1.Text+=sbText;  stringreader.Close(); }}
Результатом выполнения будет: