[stathread]这个东西是什么意思

时间:2022-07-27 02:47:44
[stathread]这个东西是什么意思。
还有一个问题为什么说object被认为是int的教高的类型。object是个什么类型,是不是他引用什么就是什么类型?

15 个解决方案

#1


指示应用程序的 COM 线程模型是单线程单元 (STA)。

COM 线程模型只适用于使用 COM interop 的应用程序。如果将此属性应用到不使用 COM interop 的应用程序,将没有任何效果。

COM 线程模型可设置为单线程单元或多线程单元。如果应用程序线程实际调用了 COM 组件,则仅为 COM interop 初始化该线程。如果没有使用 COM interop,则不初始化该线程。

此属性与设置 System.Threading.Thread 的 System.Threading.ApartmentState 属性具有相同的效果。为确保线程模型在执行任何启动代码之前已被设置,请应用该属性,而不要设置 ApartmentState 属性。

将此属性应用到应用程序的主方法中。

注意   ASP.Net 应用程序应该将 @ Page 指令的 ASPCompat 属性设置为 true,以强制由 STA 线程池提供该页的输出服务。

以上是在MSDN中查“STAThreadAttribute 类”得到的,以后预见不认识的属性(就是在中括号中的东西)都可以在属性名后加上Attribute得到实际的属性类名,然后再在MSDN中查


Object 是.Net类库中所有类的基类,也就是说.Net类库是一个“单根”结构的类库。
C#中的int实际上是System.Int32的别名,System.Int32是.Net类库中的一个类,当然也派生自Object。
另外,由于Object是所有类的基类,所以它可以用来引用任何类的实例对象。这是OO的一个基本原则。

#2


关注!

#3


你对上面提到的com interop 是给什么东西。我不清楚

#4


进程内的数据访问分为:单线程和单元线程
单线程:
1.如果一个用户在访问数据,那么另一个用户的请求被阻断。
2.用户对全局数据的任何修改对于一些并不需要的用户是可见的。
单元线程:
1.其它用户的请求不会受阻
2.所有的在一个线程上创建的对象只能在自己的单元使用,消除了线程访问全局数据的冲突。




#5


关注  想知道 [] 这个是个什么语法用途

#6


to studio650(张小雷):
    COM Interop 指的是“COM互操作”:在托管应用中使用原有的COM组件(非托管),或反过来将托管程序集暴露为COM应用可访问的组件。

to bborn(五六七嗒八):
    []在C#和C++.NET中是用于使用属性(Attribute)于 类/方法/属性(Property)/程序集等,在VB.NET中用的是<>

#7


???    C#中的int实际上是System.Int32的别名,System.Int32是.Net类库中的一个类,
???    当然也派生自Object。

上面的这段话是有错误的。

System.Int32 不是一个类,而是一个结构(struct),是一个值类型,而 object 是一个引用类型。在C#中,请注意引用类型与值类型的差别,要知道把值类型赋给 Object 时有一个装箱(Boxing)操作,反之有一个拆箱(Unboxing)操作。

详细的请参见C#语法参考

#8


万事万物皆OBJECT

#9


呵,这小的问题还有这多说法,长见识:)

#10


有道理,不过Int32虽然是结构,可也是间接从Object继承而来的:
System.Object
     |
     +System.ValueType
            |
            +System.Int16
            +System.Int32
            +...
至于为什么ValueType是从Object继承而来的类,却又是一个“值类型”我就不大理解了~~

#11


开始线程

#12


.NET 在内存管理上,值类型在堆栈上分配内存,引用类型在堆上分配内存。
有关堆和堆栈的区别的讨论,此处略过,详细请参阅有关 .NET 内存管理的文档。

#13


关注

#14


http://expert.csdn.net/Expert/topic/2661/2661366.xml?temp=.4438593

#15


多谢AhBian(阿扁)指正,我以后多注意:P

#1


指示应用程序的 COM 线程模型是单线程单元 (STA)。

COM 线程模型只适用于使用 COM interop 的应用程序。如果将此属性应用到不使用 COM interop 的应用程序,将没有任何效果。

COM 线程模型可设置为单线程单元或多线程单元。如果应用程序线程实际调用了 COM 组件,则仅为 COM interop 初始化该线程。如果没有使用 COM interop,则不初始化该线程。

此属性与设置 System.Threading.Thread 的 System.Threading.ApartmentState 属性具有相同的效果。为确保线程模型在执行任何启动代码之前已被设置,请应用该属性,而不要设置 ApartmentState 属性。

将此属性应用到应用程序的主方法中。

注意   ASP.Net 应用程序应该将 @ Page 指令的 ASPCompat 属性设置为 true,以强制由 STA 线程池提供该页的输出服务。

以上是在MSDN中查“STAThreadAttribute 类”得到的,以后预见不认识的属性(就是在中括号中的东西)都可以在属性名后加上Attribute得到实际的属性类名,然后再在MSDN中查


Object 是.Net类库中所有类的基类,也就是说.Net类库是一个“单根”结构的类库。
C#中的int实际上是System.Int32的别名,System.Int32是.Net类库中的一个类,当然也派生自Object。
另外,由于Object是所有类的基类,所以它可以用来引用任何类的实例对象。这是OO的一个基本原则。

#2


关注!

#3


你对上面提到的com interop 是给什么东西。我不清楚

#4


进程内的数据访问分为:单线程和单元线程
单线程:
1.如果一个用户在访问数据,那么另一个用户的请求被阻断。
2.用户对全局数据的任何修改对于一些并不需要的用户是可见的。
单元线程:
1.其它用户的请求不会受阻
2.所有的在一个线程上创建的对象只能在自己的单元使用,消除了线程访问全局数据的冲突。




#5


关注  想知道 [] 这个是个什么语法用途

#6


to studio650(张小雷):
    COM Interop 指的是“COM互操作”:在托管应用中使用原有的COM组件(非托管),或反过来将托管程序集暴露为COM应用可访问的组件。

to bborn(五六七嗒八):
    []在C#和C++.NET中是用于使用属性(Attribute)于 类/方法/属性(Property)/程序集等,在VB.NET中用的是<>

#7


???    C#中的int实际上是System.Int32的别名,System.Int32是.Net类库中的一个类,
???    当然也派生自Object。

上面的这段话是有错误的。

System.Int32 不是一个类,而是一个结构(struct),是一个值类型,而 object 是一个引用类型。在C#中,请注意引用类型与值类型的差别,要知道把值类型赋给 Object 时有一个装箱(Boxing)操作,反之有一个拆箱(Unboxing)操作。

详细的请参见C#语法参考

#8


万事万物皆OBJECT

#9


呵,这小的问题还有这多说法,长见识:)

#10


有道理,不过Int32虽然是结构,可也是间接从Object继承而来的:
System.Object
     |
     +System.ValueType
            |
            +System.Int16
            +System.Int32
            +...
至于为什么ValueType是从Object继承而来的类,却又是一个“值类型”我就不大理解了~~

#11


开始线程

#12


.NET 在内存管理上,值类型在堆栈上分配内存,引用类型在堆上分配内存。
有关堆和堆栈的区别的讨论,此处略过,详细请参阅有关 .NET 内存管理的文档。

#13


关注

#14


http://expert.csdn.net/Expert/topic/2661/2661366.xml?temp=.4438593

#15


多谢AhBian(阿扁)指正,我以后多注意:P