想做个线程。来实现同时调用dll文件。看到msdn里边有这个线程单元。不太明白是怎么回事。
在调用COM组件之前先设置是单线程,还是多线程。查了下,现在有些疑惑。在vs2005下边生成
的dll文件是COM组件吗?如果是的话就得设置这个多线程还是单线程,不是的话就不用了。
在调用COM组件之前先设置是单线程,还是多线程。查了下,现在有些疑惑。在vs2005下边生成
的dll文件是COM组件吗?如果是的话就得设置这个多线程还是单线程,不是的话就不用了。
解决方案 »
- 为什么控制台运行一段时间就报错..
- 请问怎样在申请了dataTable之后,怎样为他定义结构
- *******日期转换********
- 高分求条码打印问题~~用BarcodeControl做过条码打印的高手请进.需要您的太忙..在线等.急急....
- 怎么将datatable中的数据批量存入数据库
- 十万火急,C#还是很不熟练,哎,,,
- 有关不能新建ASP.NET web应用程序的问题
- 如何将一块2进制数据一次读到一个对象里面去
- 在.net中调用COM组件的问题
- 一个关于context.Server.Transfer的问题
- 【50分】一个很让人汗颜的初级问题,同志们帮忙
- 用C#如何得到IE网页中的文本框的句柄
不是COM,因为它需要CLR(公共语言运行时)来解释到CPU中执行.你用单或多线程就用标注吧属性[...]
详见:
向 COM 公开 .NET Framework 组件
http://msdn.microsoft.com/zh-cn/library/zsfww439.aspx
如: ThreadStart timeThr = new ThreadStart();
[STAThread]//单线程
Thread thread = new Thread(start);static public void StartFunc()
{
[dllImport....]
//这儿你会写吧,调用dll
}
指示应用程序的 COM 线程模型是单线程单元 (STA)。COM 线程模型只适用于使用 COM interop 的应用程序。如果将此属性应用到不使用 COM interop 的应用程序,将没有任何效果。COM 线程模型可设置为单线程单元或多线程单元。如果应用程序线程实际调用了 COM 组件,则仅为 COM interop 初始化该线程。如果没有使用 COM interop,则不初始化该线程。
//------------MSDN上的解释,不知道是不是楼主的问题所需要的答案.
还是咋的??我怎么看到com组件可以用这个设置,而.net framework 2.0下边写的这个
dll文件不用呢??
下面也是msdn的解释:
单元是进程内部具有相同线程访问要求的对象的逻辑容器。同一单元中的所有对象都可以接收从该单元中的任何线程发出的调用。.NET Framework 不使用单元,托管对象自己负责以线程安全的方式使用所有共享资源。
是不是不用设置这个多线程单线程调用这个vs写的dll文件了。
这是对调用COM组件有关系的。普通的dll,或是C#的Assembly的话,根本无需关心这个。