C#[ STAThread]
来源:互联网 发布:双十一卫浴网络销售额 编辑:程序博客网 时间:2024/06/04 22:59
当你想指定工程的启动窗口的时候,你需要在该窗口类中申明一个Main()方法,并为这个方法设置[STAThread]属性。
[STAThread]是Single Thread Apartment单线程套间的意思,是一种线程模型,用在程序的入口方法上
(在C#和VB.NET里是Main()方法),来指定当前线程的ApartmentState 是STA。用在其他方法上不产生影响。
在aspx页面上可以使用AspCompat = "true" 来达到同样的效果。这个属性只在 Com Interop 有用,
如果全部是 managed code 则无用。简单的说法:[STAThread]指示应用程序的默认线程模型是单线程单元 (STA)。
启动线程模型可设置为单线程单元或多线程单元。如果未对其进行设置,则该线程不被初始化。也就是说如果你用的.NET Framework,
并且没有使用COM Interop,一般不需要这个Attribute。其它的还有MTA(多线程套间)、Free Thread(自由线程)。
单线程套间,简单来说所有对于单线程套间中对象的访问都是通过消息来传递的,所以同一时间只有一个线程能够访问单线程套间中的对象。
例如:
class MainClass
{
[STAThread]
static void Main(string[] args)
{
Teacher teacher = new Teacher();
Student student = new Student();
student.AdviseDelegateInstance = new Student.AdviseDelegate(teacher.Advise);
Console.WriteLine("Student got 49");
student.SetScore(49);
Console.WriteLine("Student got 87");
student.SetScore(87);
Console.ReadLine();
}
}
表示这个Main程序被一个单线程套间包住,且Main的执行,一次只能被一个线程占用,这个线程未执行完,别的线程是没办法调用的。
- C#[ STAThread]
- [C#]STAThread 初学习
- [C#]-STAThread 初学习
- STAThread
- STAThread
- [STAThread]
- 关于STAThread
- 解读STAThread
- [STAThread]是什么
- C# [STAThread]
- C# [STAThread]
- 关于[STAThread]
- STAThread共勉吧!
- C#的关键字 [STAThread]
- [STAThread]的含义
- [STAThread]的含义
- C# STAThread相关资料
- C#的关键字 [STAThread]
- AEAI Portal 权限体系说明
- 程序的内存分配
- MyBatis
- android常用碎片技术-自我总结
- openstack kolla 入门 踩坑
- C#[ STAThread]
- 拷贝构造函数
- 全排列算法
- 怎么在Linux服务器上测试TCP/UDP端口的连通性
- 转发request.getRequestDispatcher().forward(request,response)和重定向response.sendRedirect()的区别
- [IDE]jetbrains常用快捷键
- rabbitmq学习3:Publish/Subscribe
- 线程同步的几种方式
- 全新安装Win7的好方法