c#在线程中调用Clipboard.SetImage(pictureBox1.Image)出错

在VS2005中,我先建立一个线程,在线程中调用Clipboard.SetImage(pictureBox1.Image)复制一个图片框中的图片。运行时候出错,提示:“在... 在VS2005中,我先建立一个线程,在线程中调用Clipboard.SetImage(pictureBox1.Image)复制一个图片框中的图片。运行时候出错,提示:
“在可以调用 OLE 之前,必须将当前线程设置为单线程单元(STA)模式。请确保您的 Main 函数带有 STAThreadAttribute 标记。”
我必须在线程中完成图片的复制工作,请问有解决的办法吗?
展开
 我来答
dkxpsg
推荐于2016-05-25 · TA获得超过1627个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:1039万
展开全部
设置线程的ApartmentState属性为STA就行了,如下
private void button1_Click(object sender, EventArgs e)
{
th = new Thread(new ThreadStart(ImageCopy));
th.ApartmentState = ApartmentState.STA;
th.Start();
}
Thread th;
void ImageCopy()
{
Clipboard.Clear();
Clipboard.SetImage(pictureBox1.Image);
th.Abort();
}
孙中吕
2009-08-06 · 专注C/S架构开发框架技术研究
孙中吕
采纳数:435 获赞数:788

向TA提问 私信TA
展开全部
th.ApartmentState =ApartmentState.STA;

还需要设置: Control.CheckForIllegalCrossThreadCalls = false;
可以避免跨线和访问控件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柴关贵深0m
2009-08-05 · TA获得超过1142个赞
知道小有建树答主
回答量:1270
采纳率:0%
帮助的人:0
展开全部
LOCK一下试试!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
历又
2009-08-06 · TA获得超过299个赞
知道小有建树答主
回答量:726
采纳率:100%
帮助的人:449万
展开全部
加上[STAThread]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kid83
2009-08-06 · TA获得超过2081个赞
知道大有可为答主
回答量:1818
采纳率:0%
帮助的人:1979万
展开全部
[STAThread]
protected void Main()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式