问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c#中类的问题

发布网友 发布时间:2022-05-24 22:58

我来回答

3个回答

热心网友 时间:2023-11-09 21:36

1.每个窗体都有自己的都在不同的线程上运行,如果需要在窗体之间交互,就需要在线程之间交互。 2.当线程Sleep时,系统就退出执行队列一段时间,当睡眠结束时,系统会产生一个时钟中断,从而使线程回到执行队列中,从而恢复线程的执行。 3.如果父线程先于子线程结束,那么子线程将在父线程结束的同时*结束。Thread.Join()方法使父线程等待,直到子线程结束。 Abort()方法带来的后果是不可恢复的终止线程。 4.起始线程可以称之为主线程,如果所有的前台线程都停止了,那么主线程可以终止,而所有的后台线程都将无条件终止。后台线程跟前台线程只有一个区别,那就是后台线程不妨碍程序的终止。一旦一个进程所有的前台线程都终止后,CLR 将通过调用任意一个存活中的后台进程的Abort()方法来彻底终止进程。 6.挂起,睡眠(都可称为--阻塞,暂停) 与Thread.Sleep 不同,Thread.Suspend 不会使线程立即停止执行。直到线程到达安全点之后它才可以将该线程挂起。如果线程尚未启动或已经停止,则它将不能挂起。调用 Thread.Resume 将使另一个线程跳出挂起状态并使该线程继续执行。 一个线程不能对另一个线程调用Sleep ,但是一个线程可以对另一个线程调用Suspend。还可以使用许多其它的方式来阻塞线程。例如,可以通过调用 Thread.Join 使一个线程等待另一个线程(子线程)停止。使用 Monitor.Wait使一个线程等待访问一个同步对象。 5.关键字lock可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。多线程公用一个对象时,就不应该使用lock关键字了,这里Monitor,Monitor提供了使线程共享资源的方案。 Monitor类可以锁定一个对象,一个线程只有得到这把锁才可以对该对象进行操作。如: Monitor.Enter(obj); //现在oQueue对象只能被当前线程操纵了 Monitor.Exit(obj); 6.一个进程开始时至少会有一个主线程 ( 即主执行实例 ) ,这是在系统加载你的程序的时候所创建的主执行流程。而消息队列则是与线程 ( Thread ) 相关的,在似win2k上一个线程有一个且只有一个消息队列 ( queue ) 与之相对应。消息队列是在什么时候生成的呢? 在似win2k系统上,从一开始创建线程就已经有了。 一个线程可以创建多个窗体。统发送给这些窗口的消息都统一发送到同一个 消息队列 中,幸亏消息结构中有msg.hwnd指出该条消息与 哪一个窗口相关, DispatchMessage() 函数就是依照这个保证消息分派处理自动化而且不会出错! 7.每个窗体都属于创建它的线程,在一线程中直接访或间接问其它线程中的窗体的方法将导致运行时错误(VS2005)。解决方法:使用窗体从Control继承而来的Control.Invoke(Delegate)方法。该方法将在创建窗体的线程上执行委托指向的方法。注意:在VS2003下,可以在一个线程中直接或间接调用另一个线程中的窗体的方法,而不会导致运行时错误。

热心网友 时间:2023-11-09 21:36

静态是通过关键字 static 来修饰的。

1、 方法(void )是在类内部的。 也就是 先有Class  后有void 如:

public class MyClass
{
     public void MyVoid(){ }
}//正确
public static class MyClass
{
     public void MyVoid(){ }
}//错误 静态类内部的方法都必须是静态的
public  class MyClass
{
     public static  void MyVoid(){ }
}//正确

那么如果MyClass是静态类, 类内部的所有方法,都必须是静态方法

而如果MyClass是普通的类,内部的方法也可以用static来修饰, 只有带static的方法是静态方法。

同理,静态类内部的变量也必须是静态的,而普通类内部可以声明静态变量。


然后回答你的问题,

1静态方法中可以引用静态字段和非静态字段吗?

都可以。 

2非静态方法中可以引用静态字段和非静态字段吗?

都可以

3属性什么时候用静态,什么时候非静态?

静态属性、变量,也叫做“全局变量”。当你有一个属性需要到处都用的时候,就可以考虑把他声明成静态的。 

比如一个系统,登录的时候会根据用户输入的账号(123)来获取用户名(张三)。那么可以把“用户名”作为一个静态属性, 登录的时候赋值,后面需要用的时候直接取就可以了,就不用每次都取根据账号来查询了。

而静态方法也是如此,当一个方法(大多数是无参方法、或者固定输入输出类型的常用方法)

就可以写成静态的,调用的时候就不用声明一个新的实例了。

静态类、方法优点是一直都在(静态。。),用起来简单,而缺点也明显,就是无法释放资源,比较复杂的函数一般都要写成动态的,否则太占资源。

热心网友 时间:2023-11-09 21:37

区别1:静态方法不用实例化,可直接调用,非静态需要实例化 ,也就是我们通常说的new

var useclass= new class();

区别2:静态方法占用内存

这么说,静态字段和静态方法持续性占用内存单元。如果大量调用可以用

非静态的生命周期结束会快速被gc回收,一般考虑系统性能会尽量考虑使用静态方法的使用途径

追问大神,我现在就是纠结一般什么时候用静态,什么时候用非静态

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何理解“时间就是空间,空间就是时间”? 办公室副主任竞聘演讲稿范文 学校办公室主任竞聘演讲稿范文 最新办公室主任竞聘演讲稿 办公室主任竞聘演讲稿优秀范文 ...堆墨现象,墨线 接地和粘度都正常,请问应如何解决 ...都正常了开始喷印结果喷一条墨线好恐怖怎么解决呀各位老师 威力喷码机 求一份学生会演讲词 大学学生会个人优秀演讲稿 c++程序设计基础 编程实现如下功能: --编写一个MyClass类; --在MyClass类编写 实例化对象采用MyClass myObject=new MyClass()语法,这个是C#中的语实例化对象的语法 MyClass MyObj=new MyClass()是什么意思? 定义一个类MyClass1 怎样才能以MyClass为题目写一篇英语作文,但内容是:老师有哪些?同学有哪些?上些什么课? 定义一个类MyClass1,包含一个private整型变量 data和封装这两种属性的两个方法getData()和setDat()。 C# 关于引用类型的问题 c++类对象问题 MyClass类定义如下: 假定Mychass为一个类,则执行Myclass a b(2),*p;语句时,自动调用该类构造函数几 3dmax打开文件发生错误 1、假设定义一个类 MyClass,请问:程序中可以有哪几种方式使用这个类 MyClass? 例如有一个类 MyClass,在应用中 “MyClass myclass;”、“MyClass *myclass = new MyClass;”的区别。 已知MyClass为一个类,那么它的构造函数为 、析构函数为 假定Myclass 为一个类,则执行Myclass a,b[2],*p;语句时,自动调用该类的构造函数2次,对么? 银行卡上打过来钱收不到短信怎么办? 假定MyClass为一个类,则该类的拷贝构造函数的声明语句为 C++问题 假如Myclass为一类,执行Myclass a[3],*p[2];语句时会自动调用该类构造函数几次? 网站全部是用html做的 ,是个纯静态页面。所有的内容页面都放在根目录,怎么优化网站,叫百度收录 想一家人自己去故宫,在故宫就玩一天,希望高人指明一条线路 一调全屏就黑屏是怎么回事啊,弄了一整天弄 感觉欧尚X7的倒车影像很模糊,这种情况应该怎么办? 怎么在网上写小说啊 《梦幻诛仙手游》各个职业的特点是什么? 梦幻诛仙手游什么职业好 角色职业选择详细分析 梦幻诛仙手游什么职业吃香 职业分析详解 梦幻诛仙手游平民玩什么职业好 全职业分析 最强职业选择推荐 梦幻诛仙手游玩什么职业好 手机和电脑使用同一个,聊天记录能够同步吗? 如何拆液晶背光视频教程 梦幻诛仙手游职业选择 哪个职业最厉害 李子不煮能直接晒么 想做李子干 能不能直接切开了晒 不蒸不煮? 梦幻诛仙手游职业哪个好玩 最强职业推荐 梦幻诛仙手游选什么职业好 梦幻诛仙手游各职业阵法选择搭配指南 6s换灯控教程 梦幻诛仙手游什么职业好 新手最好职业选择 oracle 中 select sysdate+3/24 from dual 梦幻诛仙手游后期什么职业好玩 后期最佳职业培养建议 oracle中sysdate插入特殊格式系统时间