一个异常研究InvalidApartmentStateChange
微软资料:invalidApartmentStateChange MDA
文章:C# ApartmentState 枚举,指定线程单元状态
成员名称 | 说明 | |
---|---|---|
MTA |
Thread 将创建并进入一个多线程的单元。 |
|
STA |
Thread 将创建并进入一个单线程单元。 |
|
Unknown |
ApartmentState 未设置属性。 |
由于无法控制进程内服务器的加载或卸载顺序,因此不要从dllmain函数调用coInitialize、coInitializeEx或couninitialize。
Because there is no way to control the order in which in-process servers are loaded or unloaded,
do not call CoInitialize, CoInitializeEx, or CoUninitialize from the DllMain function.
CSDN介绍:在DLL中如何使用Coinitialize和CoUnitialize?
前辈总结:
1). 不要在dll中 初始化COM组件。因为你不知道 调用者 COM 模型是啥。当然多数是 apartment
2). 而且,根据你初始化代码使用的COM模型,调用 dllmain的 不一定是调用导出方法的调用者线程,CoInitialize 不一定生效。
最好让调用者初始化 com 环境,如果此dll的调用者也是个dll,见1)
一个异常研究InvalidApartmentStateChange的更多相关文章
- 吴恩达机器学习笔记54-开发与评价一个异常检测系统及其与监督学习的对比(Developing and Evaluating an Anomaly Detection System and the Comparison to Supervised Learning)
一.开发与评价一个异常检测系统 异常检测算法是一个非监督学习算法,意味着我们无法根据结果变量
- Python: 如何写一个异常
例子1 try: #test area function() except Exception, e: print e.message 例子2:用raise抛出一个异常 if bool_var is ...
- 从一个异常探索spring autowired 的原理
从一个异常探索autowired 的原理. 首先环境是这样的: public class Boss { @Autowired private Car car; } //@Component 加上这个注 ...
- Python面向对象之异常捕获(一)-----抛出一个异常
大部分的异常都继承自Exception这个类(而这个类有继承自BaseException这个类) 常见的异常 ValueError TypeError IndexError 抛出一个异常 下面这个类的 ...
- 如何开发一个异常检测系统:使用什么特征变量(features)来构建异常检测算法
如何构建与选择异常检测算法中的features 如果我的feature像图1所示的那样的正态分布图的话,我们可以很高兴地将它送入异常检测系统中去构建算法. 如果我的feature像图2那样不是正态分布 ...
- MVC默认提供了一个异常过滤器 HandleErrorAttribte特性
这一篇记录MVC默认提供了一个异常过滤器 HandleErrorAttribte,下一篇介绍自定义异常过滤特性. 参考引用:https://www.cnblogs.com/TomXu/archive/ ...
- 【记】研究Sharding-JDBC遇到的一个异常(Caused by: io.shardingsphere.core.exception.ShardingException: Cannot get uniformed table structure for `t`. The different meta data of actual tables are as follows)
一.异常信息 Caused by: io.shardingsphere.core.exception.ShardingException: Cannot get uniformed table str ...
- 配置Entity Framework连接Sql Server出现的一个异常
异常:The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFrame ...
- hadoop异常: 到目前为止解决的最牛逼的一个异常(java.io.IOException: Incompatible clusterIDs)
(注意: 本人用的版本为hadoop2.2.0, 旧的版本和此版本的解决方法不同) 异常为: 9 (storage id DS-2102177634-172.16.102.203-50010-1384 ...
随机推荐
- C#登录SSH执行命令,下载文件
前言 批量登录SSH执行命令 ,把应急响应中的日志文件下载回来. 代码实现 Renci.SshNet编译出DLL,引用. using System; using System.Collections. ...
- iOS-系统bool理解
typedef signed char BOOL; #if !defined(YES) #define YES (BOOL)1 #endif #if !defined(NO) #defin ...
- idea自动下载依赖的源代码等信息
mvn dependency:sources -DdownloadSources=true -DdownloadJavadocs=true
- Fakes中Shim的2种方法
Fakes自动生成的Shim代码,有两种可能:(目前尚不清楚生成规律) //属性型 public static FakesDelegates.Func<string, bool, string& ...
- 入行IT的选择决定了日后走的路的长度和领域的深度
前段时间和发小聊天时,他说了一句话我觉得很值得思考,送给大家:机遇大于努力,选择大于机遇. 一年前我毅然辞去了之前的工作,只身来到北京,正式成为了北漂的一员.对于我们现在的大环境下,其实北漂已经和以前 ...
- 2个CDH的hive数据同步
算法和数仓共用一套hive数据: CM: 真实数据: 都存在共享存储: oss, s3,ufile上. CDH配置能访问的权限(key)
- 工作总结--CTO(张王岩)File的使用
名称 路径分隔符 pathSeparator separator 构造器 文件名.路径名 getName() getPath() getAbsolutePath() getParent ...
- select 和v-model
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- U1. 广度优先搜索(BFS)和 广度优先搜索(DFS)
广度优先搜索用栈(stack)来实现,整个过程可以想象成一个倒立的树形: 1.把根节点压入栈中. 2.每次从栈中弹出一个元素,搜索所有在它下一级的元素,把这些元素压入栈中.并把这个元素记为它下一级元素 ...
- Linux下使用Vim粘贴文本错乱问题解决
在使用vim进行文档操作时,经常需要进行复制粘贴,在粘贴大量代码时,出现行错位等各种错乱,查找问题解决办法: vim进入文件后,先ESC 在出入 :set paste 回车后再按下 i 之后进行粘 ...