我想在一个子线程中保存文件
所以需要打开一个保存对话框,
可是在打开时抛出一个异常,请问我该怎样处理??
异常描述如下:在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。
所以需要打开一个保存对话框,
可是在打开时抛出一个异常,请问我该怎样处理??
异常描述如下:在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。 只有将调试器附加到该进程才会引发此异常。
public delegate void MyInvoke(string str);
//更新文本框的函数
private void UpdateTextBox(string str)
{
this.TextBox1.Text=str;
}//线程函数
private void ThreadPro()
{
//...
//更新方本框
string str="value test";
MyInvoke mi=new MyInvoke(UpdateTextBox);
this.BeginInvoke(mi,new object[]{str});
}
因为我的数据是用UDP接收到的
接收函数单起了线程
文本框的我清楚
但这个没搞掂
private void button1_Click(object sender,EventArgs e)
{
Thread aaa = new Thread(new ThreadStart(OpenDialogOnOtherThread));
aaa.Start();
}//其它线程打开对话框
void OpenDialogOnOtherThread()
{
MyMethod OpenDialog = new MyMethod(this.OpenDialog);
this.Invoke(OpenDialog); //在当前线程,调用OpenDialog
}//打开对话框
void OpenDialog()
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.ShowDialog();
}
谢谢你了,热心的朋友
你有QQ什么的,交个朋友啊
public Form1()
{
new Thread(new ThreadStart(Test)).Start();
}
[STAThread]
public static void Main()
{
Application.Run(new Form1());
}
void Test()
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.ShowDialog();
}