Я новичок в C #, но я сделал много Java. Вот моя проблема: я пытаюсь открыть «SaveFileDialog» из потока, который не является потоком пользовательского интерфейса.
Это именно то, что я пытаюсь сделать:
public partial class Form1: Form
{
public string AskSaveFile()
{
var sfd = new SaveFileDialog();
sfd.Filter = "Fichiers txt (*.txt)|*.txt|Tous les fichiers (*.*)|*.*";
sfd.FilterIndex = 1;
sfd.RestoreDirectory = true;
DialogResult result = (DialogResult) Invoke(new Action(() => sfd.ShowDialog(this)));
if(result == DialogResult.OK)
{
return sfd.FileName;
}
return null;
}
}
Этот метод всегда будет вызываться из потока, отличного от того, кто владеет формой. Проблема заключается в том, что при выполнении этого кода «Form1» зависает, а «SaveFileDialog» не отображается.
У вас есть подсказка, чтобы помочь мне показать диалог из независимой ветки?