KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I encounter a problem with a Windows Forms application. A form must be displayed from another thread. So in the form class, I have the following code: private delegate void DisplayDialogCallback(); public void DisplayDialog() { if (this.InvokeRequired) { this.Invoke(new DisplayDialogCallback(DisplayDialog)); } else { this.ShowDialog(); } } Now, every time I run this, an InvalidOperationException is thrown on the line this.ShowDialog(); : "Cross-thread operation not valid: Control 'SampleForm' accessed from a thread other than the thread it was created on." What's wrong with this piece of code? Isn't it a valid way to make cross-thread calls? Is there something special with ShowDialog() ?
Tags (comma-separated)
Save Edits
Cancel