C# WinForms:如何设置 Main 函数 STAThreadAttribute

2023-12-13

调用时出现以下异常saveFileDialog.ShowDialog()在后台线程中:

当前线程必须设置为单线程 OLE 之前的线程单元 (STA) 模式 可以拨打电话。确保您的 Main函数有STAThread属性 标记在其上。

根据this:

要解决该问题,请插入 陈述:

Threading.Thread.CurrentThread.ApartmentState = Threading.ApartmentState.STA;

在 Main 之前 Application.Run 语句。

但 Application.Run 语句位于 Program.cs 中,它似乎是生成的代码,因此任何更改都可能会意外丢失。另外,我找不到在项目或主窗体属性中将当前线程设置为 STA 的方法,但也许我找错了地方。 正确的打电话方式是什么saveFileDialog.ShowDialog()在后台线程中?


解决方案非常简单; 只需将其添加到 Main 方法的顶部即可[STAThread]

所以你的主要方法应该是这样的

 [STAThread]
 static void Main(string[] args)
 {
     ....
 }

这个对我有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# WinForms:如何设置 Main 函数 STAThreadAttribute 的相关文章

  • 为什么这个 Web api 控制器不并发?

    我有一个 Web API 控制器 里面有以下方法 public string Tester Thread Sleep 2000 return OK 当我调用它 10 次 使用 Fiddler 时 我预计所有 10 次调用都会在大约 2 秒后
  • Exit() 时是否调用基本对象析构函数?

    我意识到这个问题已经出现过几次 但我试图获得上述问题的明确答案 但我不断遇到相互矛盾的信息 我需要知道的是 当我使用 exit 时 基本类对象是否被破坏 我知道需要删除动态内存 但我的意思更像是 include
  • 如何在 VC++ CString 中验证有效的整数和浮点数

    有人可以告诉我一种有效的方法来验证 CString 对象中存在的数字是有效整数还是浮点数吗 Use tcstol http msdn microsoft com en us library w4z2wdyc aspx and tcstod
  • 在 CPP 类中将 C 函数声明为友元

    我需要在 C 函数中使用类的私有变量 我正在做这样的事情 class Helper private std string name public std getName return name friend extern C void in
  • 转换 const void*

    我有一个函数返回一个const void 我想用它的信息作为char 我可以将它投射为 C 风格的罚款 char variable但是当我尝试使用reinterpret cast like reinterpret cast
  • 前向声明类型和“已声明为类类型的非类类型”

    我对以下代码有问题 template
  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • 当事件button.click发生时,如何获取按钮名称/标签?

    我以编程方式制作按钮并将它们添加到堆栈面板中 以便每次用户导航到页面时按钮都会发生变化 我正在尝试做这样的事情 当我单击创建的按钮时 它将获取按钮的标签并转到正确的页面 但是 我无法使用 RoutedEventHandler 访问按钮元素
  • 如何将 SOLID 原则应用到现有项目中

    我对这个问题的主观性表示歉意 但我有点卡住了 我希望之前处理过这个问题的人能够提供一些指导和建议 我有 现在已经成为 一个用 C 2 0 编写的非常大的 RESTful API 项目 并且我的一些类已经变得巨大 我的主要 API 类就是一个
  • 有些有助于理解“产量”

    在我不断追求少吸的过程中 我试图理解 产量 的说法 但我不断遇到同样的错误 someMethod 的主体不能是迭代器块 因为 System Collections Generic List 不是迭代器接口类型 这是我被卡住的代码 forea
  • 如何将 .txt 文件中的数据转换为 xml? C#

    我在一个文本文件中有数千行数据 我想通过将其转换为更容易搜索的内容来轻松搜索 我希望 XML 或其他类型的大型数据结构 尽管我不确定它是否是最好的对于我的想法 每行的数据如下所示 第 31 册 托马斯 乔治 32 34 154 每本书都不是
  • RestSharp获取序列化输出

    我正在寻找一种方法来访问 AddBody 调用的序列化结果 我正在使用内置的 RestSharp 序列化器 例子 class Foo public string FooField void SendRecord var f new Foo
  • 如何使用 ASP.NET Core 获取其他用户的声明

    我仍在学习 ASP NET Core 的身份 我正在进行基于声明的令牌授权 大多数示例都是关于 当前 登录用户的 就我而言 我的 RPC 服务正在接收身份数据库中某个用户的用户名和密码 我需要 验证是否存在具有此类凭据的用户 获取该用户的所
  • 在 VS 中运行时如何查看 C# 控制台程序的输出?

    我刚刚编写了一个名为 helloworld 的聪明程序 它是一个 C NET 4 5 控制台应用程序 在扭曲的嵌套逻辑迷宫深处 使用了 Console WriteLine 当我在命令行运行它时 它会运行并且我会看到输出 我可以执行其他命令并
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • 比较:接口方法、虚方法、抽象方法

    它们各自的优点和缺点是什么 接口方法 虚拟方法 抽象方法 什么时候应该选择什么 做出这一决定时应牢记哪些要点 虚拟和抽象几乎是一样的 虚方法在基类中有一个实现 可以选择重写 而抽象方法则没有 并且must在子类中被覆盖 否则它们是相同的 在
  • C++:二叉树所有节点值的总和

    我正在准备面试 我被一个二叉树问题困住了 我们如何计算二叉树所有节点中存在的值的总和 优雅的递归解决方案 伪代码 def sum node if node NULL return 0 return node gt value sum nod
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person
  • 如何在 sql azure 上运行 aspnet_regsql? [复制]

    这个问题在这里已经有答案了 可能的重复 将 ASP NET 成员资格数据库迁移到 SQL Azure https stackoverflow com questions 10140774 migrating asp net membersh
  • 当用户更改 Windows 中的语言键盘布局时如何通知?

    I want to show a message to user when the user changes the language keyboard layout of Windows for example from EN to FR

随机推荐

  • Google Dataflow / Apache Beam Python - PCollection 的侧面输入会降低性能

    我们正在使用 Python SDK 在 google 数据流中运行日志文件解析作业 数据分布在数百个每日日志中 我们通过云存储中的文件模式读取这些日志 所有文件的数据量约为 5 8 GB gz 文件 总共 50 8000 万行 loglin
  • 单个脚本可以在 Windows 批处理和 Linux Bash 中运行吗?

    是否可以编写一个在 Windows 视为 bat 和 Linux 通过 Bash 中执行的脚本文件 我知道两者的基本语法 但不明白 它可能会利用一些 Bash 的晦涩语法或一些 Windows 批处理器故障 要执行的命令可能只是一行来执行其
  • 在循环 x86-64 程序集之前和内部使用 printf

    我无法弄清楚如何在此函数中正确使用 printf 因此该函数称为 multInts 应该将第一个数组的第一个元素与第二个数组的第一个元素相乘 然后继续遍历整个数组 但是 实验说明指定我不能在主函数中调用 printf 因此 我需要打印出 P
  • 摩托罗拉手机上的谷歌地图出现故障

    在摩托罗拉 Bravo 上 地图视图的左下角有一个丑陋的橙色方块 而不是谷歌徽标 我不仅在我的应用程序上注意到这一点 而且在 Yelp 上也注意到了这一点 请参阅屏幕截图 有其他人看到过这个吗 有解决方法吗 我不知道它是否发生在其他摩托罗拉
  • 连接/处理脚本到 PySimpleGUI 按钮

    你们能帮助我知道如何连接 PySimpleGui 脚本中的按钮 该按钮将在按下 单击运行按钮时执行另一个 python 脚本 现在 我一直在 GUI 脚本中阅读有关 Subprocess 和 command os popen 的内容 lay
  • 如何杀死一段时间内没有输出的进程

    我编写了一个程序 该程序应该运行很长时间 并将进度输出到stdout但是 在某些情况下 它开始挂起 最简单的方法就是重新启动它 我的问题是 有没有办法做一些事情 只有在特定秒数内没有输出时才会终止进程 我开始思考这个问题 唯一想到的就是这样
  • Symfony 2 错误:调用非对象上的成员函数 get()

    我查找了一些解决方案 但没有找到适合我的问题的解决方案 在一个控制器中我创建另一个控制器的实例 Controller1 mailController new MailController mailController gt newComme
  • 在 C++ 中将字符串转换为 int [重复]

    这个问题在这里已经有答案了 我正在尝试将从文件中读取的字符串转换为 int 值 以便可以将其存储在整数变量中 这就是我的代码的样子 ifstream sin sin open movie output txt string line get
  • 如何在空手道中为 SOAP 创建动态负载

    我使用一个变量来读取 XML 文件 然后将其分配给另一个称为有效负载的变量 将该 XML 作为 CDATA 在有效负载中传递 我的有效负载结构不会改变 我必须使用不同的 XML 文件 即不同的 CDATA 进行三到五个连续的 SOAP 调用
  • 在 Cypress 中测试我的网站时如何将数据添加到 Stripe 中

    我会尝试解释我的问题 我在网站上进行了测试 mysite com 但在注册过程中 用户应添加信用卡数据 他们可以做到https checkout stripe com pay 单击 下一步 按钮后将打开此页面 如何添加信用卡数据 谢谢 Go
  • 如何编写 C# 5 异步?

    我有以下场景 当输入命令时 为了测试 它是一个控制台应用程序 当它准备好时 我希望它将是一个WebService 我执行一些代码 当需要进一步的用户输入时 我立即返回到命令解释器 当给出新的输入时 我希望处理从我离开的地方恢复 这听起来很像
  • 创建 iruby 笔记本时内核死掉

    我对 SciRuby 完全是菜鸟 我第一次使用 SciRuby 我正在关注这个video 概述如何使用 SciRuby 并绘制图形 图表等 当我转到 localhost 8888 并从右侧下拉菜单创建新笔记本时 Ruby 2 2 3 我在
  • 是否可以在一个 JVM 中运行多个映射任务?

    我想为 Hadoop 中的映射任务共享大量内存静态数据 RAM lucene 索引 有没有办法让多个map reduce任务共享同一个JVM 作业可以通过指定作业配置mapred job reuse jvm num tasks来重用任务JV
  • 使用 mysql php pdo 从数据库返回一个值

    我不想使用循环 我只从一行的一列中获取一个值 我通过以下代码得到了我想要的 但必须有一种更简单的方法使用 PDO try conn new PDO mysql host localhost dbname advlou test advlou
  • 用C程序杀死一个进程

    我正在编写一个程序 通过 vim 打开 txt 文件 每当我按 CTRL C 时 该进程就会被终止 但问题是我找不到我刚刚创建的进程的 pid 并杀死它 有谁能够帮助我 include
  • 如何使用 EF Core 将 JSON 存储在实体字段中?

    我正在使用 NET Core 针对 NETStandard 1 4 创建一个可重用库 并且正在使用 Entity Framework Core 对于两者来说都是新的 我有一个实体类 如下所示 public class Campaign Ke
  • 在 Windows 窗体上拖动时调整矩形大小

    我在 Windows 窗体顶部绘制了一个矩形 我想使用提供的手柄之一调整它的大小 Rectangle areaRect new Rectangle 100 100 300 300 Bool dragging false Point ptOl
  • Pandas:在数据框中创建两个新列,其值是根据预先存在的列计算得出的

    我正在与pandas库 我想向数据框中添加两个新列df有 n 列 n gt 0 这些新列是通过将函数应用到数据帧中的其中一列而产生的 要应用的函数如下 def calculate x operate return z y 为仅返回值的函数创
  • 如何通过迭代方法创建一系列带有统计注释的箱线图

    我已经安装了以下模型 models list 1 lt data long gt group by signals gt do fit lmerTest lmer value COND SES 1 ID data gt pull fit g
  • C# WinForms:如何设置 Main 函数 STAThreadAttribute

    调用时出现以下异常saveFileDialog ShowDialog 在后台线程中 当前线程必须设置为单线程 OLE 之前的线程单元 STA 模式 可以拨打电话 确保您的 Main函数有STAThread属性 标记在其上 根据this 要解