您的位置:首页 > 其它

问一个简单问题[STAThread]是什么意思

2006-07-10 18:25 405 查看
http://blog.joycode.com/xinz/archive/2004/08/22/31313.aspx
http://topic.csdn.net/t/20030312/09/1519728.html
1楼 TheAres (班门斧) 回复于 2003-03-12 10:21:37 得分 50
)[STAThread]是什么意思?
是Single Thread Apartment单线程套间
是一种线程模型。其它的好像还是MTA(多线程套间)、Free Thread(自由线程)
这个属性要加在主 Main 上。这个属性只在 Com Interop 所用,如果全部是 managed code 则无用。
[]是用来表示Attributes 。

Top
2楼 James880 (混子) 回复于 2003-03-12 10:27:58 得分 50

[STAThread]指示应用程序的默认线程模型是单线程单元 (STA)。
启动线程模型可设置为单线程单元或多线程单元。如果未对其进行设置,
则该线程不被初始化。

[]是用来表示Attributes 。

Top
3楼 xeonwei (以下信息不对外公开) 回复于 2003-03-12 10:49:29 得分 0
能解释一下 Attributes的原理吗?

Top
4楼 TheAres (班门斧) 回复于 2003-03-12 11:00:47 得分 0
属性提供功能强大的方法以将声明信息与 C# 代码(类型、方法、属性等等)相关联。与程序实体关联后,属性可在运行时查询,并可以以任意多种方式使用。

属性的用法示例包括:

将帮助文档与程序实体关联(通过 Help 属性)。
将值编辑器关联到 GUI 框架中的特定类型(通过 ValueEditor 属性)。
除一个完整的示例外,本教程还包括以下主题:

声明属性类 您必须能够做的第一件事是声明属性。
使用属性类 创建属性后,接着应将属性与特定程序元素相关联。
通过反射访问属性 属性已与某程序元素关联后,可使用反射来查询属性存在及其值。

具体看看帮助:
ms-help://MS.NETFrameworkSDK.CHS/csref/html/vcwlkattributestutorial.htm

感谢您使用微软产品。

C#的关键字 STAThread即 single-threaded apartment。
每个Thread都有一个关于ApartmentState的属性,可以把它设置为:STA或者MTA,或者UNKNOWN。

当你想指定工程的启动窗口的时候,你需要在该窗口类中申明一个Main()方法,并为这个方法设置[STAThread]属性。

详细信息,清查阅MSDN中关于Threading和COM Interop和COM+ Apartment Model的文章:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguidnf/html/cpconmanagedunmanagedthreading.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguidnf/html/cpconadvancedcominterop.asp

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cossdk/htm/pgservices_synchronization_8703.asp

======================
- 微软全球技术中心 微软全球技术中心 VC技术支持

本贴子仅供19b的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
======================
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐