2012-04-23 72 views
5

我的应用程序有一个工作线程正在执行一些文件同步。工作线程上的MessageBox

在同步过程中的某些情况下,我的工作线程需要做出是否继续的决定。因此,我想我会通过显示对话框/消息框来请求用户反馈。(是/否)。这将导致工人继续或停止。

现在的问题是:
在非UI线程上显示消息框安全吗?
它可能会导致任何潜在的问题?

+0

的问题是不能够设置适当的父: http://stackoverflow.com/questions/12949333/message-box-from-another-thread/13961697#13961697 – hans 2012-12-19 21:44:30

回答

5

在非UI线程上显示消息框是否安全?

是的,它是安全的。 MessageBox.Show()是一个静态线程安全的方法。

它可能会导致任何潜在的问题?

不是在这种情况下,我认为。但是你阻止了一个线程,而不是你应该做的事情,当你可以防止它。

3

MessageBox不绑定到UI。这是一个简单的Win32 API调用。你可以在任何线程上使用它。

+2

号你不能。 http://www.codeproject.com/Articles/121226/MessageBoxes-and-worker-threads – Robert 2014-02-21 19:11:57