GUI do Windows Forms trava ao chamar OpenFileDialog.ShowDialog ()
my project um projeto de arquitetura de três camadas conversando com um serviço WCF no back-end. Quando o back-end é capaz de buscar dados do serviço, ele notifica a camada de negócios usando a publicação-assinatura, que por sua vez notifica a camada da GU
Adicionei um OpenFileDialog ao meu design de interface do usuário usando o designer do Visual Studios. Um manipulador de eventos de botão chama a mensagem ShowDialog. No entanto, quando clico no botão, a interface do usuário inteira trava.
Pesquisando um pouco, descobri que o uso de delegados é a maneira preferida de lidar com tarefas como essa. No entanto, com ou sem delegação, o problema persiste.
Atualmente, meu código fica assim:
private void bOpen_Click(object sender, EventArgs e)
{
Func<Image> del = delegate
{
OpenFileDialog d = new OpenFileDialog();
if (d.ShowDialog() == DialogResult.OK)
{
return Image.FromFile(d.FileName);
}
return null;
};
Invoke(del);
}
Eu sou do mundo Java, então não estou realmente familiarizado com os meandros da programação da interface do usuário em C
Algo que estou sentindo falta aqui?