dlaczego form.showdialog () działa i form.show () nie występuje w następującym kodzie
W poniższym fragmencie kodu mam obserwatora, który wygląda, jeśli plik się zmienił i jeśli się zmienił, pokazuję zmienione informacje na formularzu, ale jeśli używam formularza.Show (), to zawiesza się, ale form.showDialog () działa poprawnie , jaka jest różnica między tymi dwoma i jak określić, którego użyć
private void watcher_Changed(object sender, FileSystemEventArgs e)
{
_watcher.EnableRaisingEvents = false;
try
{
if (_displayPatientInfo != null)
{
_displayPatientInfo.Dispose();
}
GetPatientInfo(e.FullPath);
using (StreamReader sr = new StreamReader(e.FullPath, Encoding.Default))
{
String line;
line = sr.ReadToEnd();
if (line.IndexOf("<IsPatientFixed>") > 0)
{
var value = GetTagValue(line, "<IsPatientFixed>", "</IsPatientFixed>");
if (value == "true" || value == "True")
{
_displayPatientInfo = new frmPatientInfoDisplay();
_displayPatientInfo.SetData(_patientInfo);
_displayPatientInfo.ShowDialog();
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
_watcher.EnableRaisingEvents = true;
}
}