作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 C++ WinRT DLL 的 C# 程序。 C# 程序创建公共(public) WinRT 类 Foo 的实例,该实例在内部尝试实例化未声明为公共(public)的第二个 WinRT 类 Bar 的对象。在 Bar 类上调用“ref new”时,它会抛出一个异常,提示“不支持从 MTA 激活单线程类”。
如何将 Bar 类配置为在 MTA 样式的线程应用程序中工作?它是按类还是 DLL 范围的设置?
最佳答案
它是每个类的行为,由属性 ThreadingModel
控制和 MarshallingBehavior
.有关详细信息,请参阅 MSDN - Threading and Marshaling .
用法是这样的:
using namespace Windows::Foundation::Metadata;
using namespace Platform;
[Threading(ThreadingModel=ThreadingModel::STA]
[MarshalingBehavior(MarshalingType=MarshalingType::None)]
public ref class MySTAClass
{
};
关于multithreading - 来自 C# 应用程序中使用的 C++ WinRT DLL 的 "Activating a single-threaded class from MTA is not supported"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13351917/
我是一名优秀的程序员,十分优秀!