gpt4 book ai didi

vb.net - System.Threading.ThreadstateException

转载 作者:行者123 更新时间:2023-12-03 12:53:16 32 4
gpt4 key购买 nike

我正在为Office Powerpoint应用程序开发一个附件。
我正在尝试以设计模式(powerpoint的设计模式)显示当前放置在powerpoint幻灯片上的对象(自定义对象)的描述。
当我单击我的插件时,相关的对象描述将作为第一个选项卡页面显示在一个选项卡式窗口中。

标签页上有一个按钮,当我单击它时,我需要描述才能复制到Windows剪贴板。
我使用剪贴板类尝试了此操作,它引发了以下异常,
System.Threading.ThreadstateException
{“在进行OLE调用之前,必须将当前线程设置为单线程单元(STA)模式。确保您的Main函数上已标记了STAThreadAttribute。”}

剪贴板代码:
Clipboard.Clear()
Clipboard.SetText(lblObjectID.Text)

我在网上搜索了一个解决方案,并得到了一些答案,例如,
1.将[STAThread]放在主函数中
2.调用SetDataObject之前的Thread.CurrentThread.SetApartmentState(ApartmentState.STA)。

但是我不确定在哪里放置第一个选项和第二个选项不起作用。
谁能帮我。
谢谢。

最佳答案

WinForms默认为STA。您是在创建另一个线程还是在使用BackgroundWorker?运行以下代码以确定您所处的模式:

MessageBox.Show(System.Threading.Thread.CurrentThread.GetApartmentState().ToString())

编辑:

但是也许您也可以在调用剪贴板函数之前尝试使用 this command:
Application.OleRequired()

关于vb.net - System.Threading.ThreadstateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2566463/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com