CoInitialize和CoInitializeEx

简介:

1.CoInitialize和CoInitializeEx的功能

CoInitialize是在当前线程初始化Com组件的函数,并且初始化为STA模式(单线程模式),一般新的程序建议使用CoInitializeEx来替代。CoInitializeEx初始化当前线程Com组件并提供更多的设置选项,如并发模式等。

2.关于并发模型的说明(concurrency model)

并发模型类型

下面两种不能同时设置

COINIT_APARTMENTTHREADED

这个模式允许多线程调用,但是多线程所有的调用请求实际是被序列化,执行还是在创建这个线程对象的那个线程执行

COINIT_MULTITHREADED

这个模式允许在任何线程调用对象的方法(在这个线程创建的对象)。这不是序列化的,许多调用可以在不同的线程调用对象的方法。这种模式提供了一种高效的性能可以很好的利用多处理器跨线程、进程、机器调用,这是因为调用的这个方法没有被序列化,而是被同时调用的。所以这种使用时作者需要自己使用线程同步的方法。这种模式一般用来无界面的调用。

 

下面两种一般不用

COINIT_DISABLE_OLE1DDE禁用DDE对OLE1的支持COINIT_SPEED_OVER_MEMORY增加内存使用来使性能上升

3.CoInitialize多次调用和CoInitializeEx多次调用的问题

在同一个线程内多次调用CoInitializeEx是允许的,但没有任何意义。

相关文章
|
C# 容器
WPF技术之HorizontalAlignment和VerticalAlignment
HorizontalAlignment和VerticalAlignment是用来确定控件在其父容器中的水平和垂直位置的属性。
1671 0
WPF技术之HorizontalAlignment和VerticalAlignment
|
Kubernetes 安全 数据安全/隐私保护
Kubernetes 安全性最佳实践
【8月更文第29天】随着容器化和微服务架构的普及,Kubernetes 已成为管理容器化应用的标准平台。然而,随着 Kubernetes 的广泛采用,其安全性问题也日益受到关注。本文将深入探讨 Kubernetes 的安全最佳实践,并通过具体的代码示例来展示如何保护 Kubernetes 集群免受攻击。
650 2
|
Web App开发 缓存 JavaScript
如何排查 Electron V8 引发的内存 OOM 问题(中)
如何排查 Electron V8 引发的内存 OOM 问题(中)
1852 0
|
SQL 分布式计算 HIVE
Hive Cli / HiveServer2 中使用 dayofweek 函数引发的BUG!
在Hive 3.1.2和Spark 3.0.2集群环境中,遇到`dayofweek`函数bug。当`create_date`为字符串类型时,`dayofweek`函数结果错位。修复方法是将`create_date`转换为`date`类型。在Spark SQL中,原始代码能正常运行,未出现此问题。因此建议在Hive中使用转换后的日期类型以避免错误。
279 4
|
存储 中间件 Go
探索Gin框架:快速构建高性能的Golang Web应用
探索Gin框架:快速构建高性能的Golang Web应用
|
关系型数据库 MySQL 数据库
SiteGround主机站点工具SITE TOOLS设置教程
当你使用SiteGround搭建WordPress或WooCommerce网站后,你会经常登录到两个不同的网站后台:一个是SiteGround的Site Tools后台,用于进行网站的安全、速度优化、FTP工具和网站备份等技术操作;另一个是WordPress网站后台,主要用于管理网站内容、调整前台显示样式和编辑网站功能。本文我们介绍了如何使用SiteGround SITE TOOLS主机站点工具管理网站。
455 0
SiteGround主机站点工具SITE TOOLS设置教程
|
C++ Windows
[√]window下子线程CCLOG导致主线程阻塞问题
[√]window下子线程CCLOG导致主线程阻塞问题
549 0
|
监控 关系型数据库 MySQL
CentOS8.5下安装部署开源监控系统Zabbix 6.0LTS
CentOS8.5下安装部署开源监控系统Zabbix 6.0LTS
1369 0
CentOS8.5下安装部署开源监控系统Zabbix 6.0LTS
前端如何设置浏览器网页标签页前的小图标favicon.ico
前端如何设置浏览器网页标签页前的小图标favicon.ico
1644 0
前端如何设置浏览器网页标签页前的小图标favicon.ico
|
存储 Ubuntu 安全
2023 年 10 个最受欢迎的 Linux 发行版
2023 年 10 个最受欢迎的 Linux 发行版
11734 0