Q:子线程如何使用FolderBrowserDialog
A:
private void button1_Click(object sender, EventArgs e) ...{ System.Threading.Thread s = new System.Threading.Thread(new System.Threading.ThreadStart(test)); s.ApartmentState = System.Threading.ApartmentState.STA; s.Start(); } public void test() ...{ System.Windows.Forms.FolderBrowserDialog dlg = new FolderBrowserDialog(); dlg.ShowDialog(); }
以上代码简单的演示了FolderBrowserDialog在子线程中的使用,其中设置线程的ApartmentState为System.Threading.ApartmentState.STA是关键的语句。在.net2.0中应该使用
s.SetApartmentState(System.Threading.ApartmentState.STA);
如果没有上述设置会报如下错误
在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。
如果你了解com的线程模型的话,应该已经清楚上面的问题根本了。
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索线程
, thread
, system
, sta
, richardm sta
, folderbrowserdialog
threading
folderbrowserdialog、folderbrowserdialog1、browserfolder.js下载、browserfolder.js、openfolderdialog,以便于您获取更多的相关知识。